You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@reef.apache.org by "Dongjoon Hyun (JIRA)" <ji...@apache.org> on 2015/09/29 21:23:04 UTC

[jira] [Updated] (REEF-791) Replace inefficient use of keySet iterator with entrySet iterator

     [ https://issues.apache.org/jira/browse/REEF-791?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Dongjoon Hyun updated REEF-791:
-------------------------------
    Description: 
We can improve performance by replacing `keySet` with `entrySet`. For example, see the following code pattern change in REEF-Wake.
{code}
-    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());
{code}

As of today, we can find 6 candidates.
 * reef-io
   * CodecRamMap.java
 * reef-tang
   * CommandLine.java
   * InjectorImpl.java
   * Tint.java
 * reef-util
   * CacheImpl.java
 * reef-wake
   * MultiCodec.java

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

  was:
We can improve performance by replacing `keySet` with `entrySet`. For example, see the following code pattern change in REEF-Wake.
{code}
-    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());
{code}

As of today, we can find 6 candidates.
 * reef-io
  * CodecRamMap.java
 * reef-tang
  * CommandLine.java
  * InjectorImpl.java
  * Tint.java
 * reef-util
  * CacheImpl.java
 * reef-wake
  * MultiCodec.java

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


> Replace inefficient use of keySet iterator with entrySet iterator
> -----------------------------------------------------------------
>
>                 Key: REEF-791
>                 URL: https://issues.apache.org/jira/browse/REEF-791
>             Project: REEF
>          Issue Type: Improvement
>    Affects Versions: 0.12
>            Reporter: Dongjoon Hyun
>            Assignee: Dongjoon Hyun
>            Priority: Trivial
>              Labels: easyfix
>             Fix For: 0.13
>
>
> We can improve performance by replacing `keySet` with `entrySet`. For example, see the following code pattern change in REEF-Wake.
> {code}
> -    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());
> {code}
> As of today, we can find 6 candidates.
>  * reef-io
>    * CodecRamMap.java
>  * reef-tang
>    * CommandLine.java
>    * InjectorImpl.java
>    * Tint.java
>  * reef-util
>    * CacheImpl.java
>  * reef-wake
>    * MultiCodec.java
> We can improve all except `InjectorImpl.java' using `TracingMonotonicTreeMap.java' that doesn't support `entrySet`.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)