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)