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
- links to