Uploaded image for project: 'REEF (Retired)'
  1. REEF (Retired)
  2. REEF-791

Replace inefficient use of keySet iterator with entrySet iterator

    XMLWordPrintableJSON

Details

    • Improvement
    • Status: Resolved
    • Trivial
    • Resolution: Fixed
    • 0.12
    • 0.13
    • None

    Description

      We can improve performance by replacing `keySet` with `entrySet`. For example, see the following code pattern change in REEF-Wake.

      -    for (final Class<? extends T> clazz : clazzToCodecMap.keySet()) {
      -      clazzToEncoderMap.put(clazz, clazzToCodecMap.get(clazz));
      -      clazzToDecoderMap.put(clazz, clazzToCodecMap.get(clazz));
      +    for (final Entry<Class<? extends T>, Codec<? extends T>> e : clazzToCodecMap.entrySet()) {
      +      clazzToEncoderMap.put(e.getKey(), e.getValue());
      +      clazzToDecoderMap.put(e.getKey(), e.getValue());
      

      As of today, we can find 6 candidates.

      • CodecRamMap.java (reef-io)
      • CommandLine.java (reef-tang)
      • InjectorImpl.java (reef-tang)
      • Tint.java (reef-tang)
      • CacheImpl.java (reef-util)
      • MultiCodec.java (reef-wake)

      We can improve all except `InjectorImpl.java' using `TracingMonotonicTreeMap.java' that doesn't support `entrySet`.

      Attachments

        Issue Links

          Activity

            People

              dongjoon Dongjoon Hyun
              dongjoon Dongjoon Hyun
              Votes:
              0 Vote for this issue
              Watchers:
              1 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: