CAMEL-11339: Optimise to use LongAdder instead of AtomicLong
Project: http://git-wip-us.apache.org/repos/asf/camel/repo Commit: http://git-wip-us.apache.org/repos/asf/camel/commit/0959a75b Tree: http://git-wip-us.apache.org/repos/asf/camel/tree/0959a75b Diff: http://git-wip-us.apache.org/repos/asf/camel/diff/0959a75b Branch: refs/heads/master Commit: 0959a75b73b8dd4a2f01fdc0f4a40c51853a824d Parents: 9d2f1df Author: Claus Ibsen <davscl...@apache.org> Authored: Fri May 26 11:51:45 2017 +0200 Committer: Claus Ibsen <davscl...@apache.org> Committed: Fri May 26 12:09:36 2017 +0200 ---------------------------------------------------------------------- .../camel/impl/DefaultEndpointRegistry.java | 2 +- .../camel/impl/DefaultTransformerRegistry.java | 2 +- .../camel/impl/DefaultValidatorRegistry.java | 2 +- .../java/org/apache/camel/util/LRUCache.java | 26 ++++++++++---------- 4 files changed, 16 insertions(+), 16 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/camel/blob/0959a75b/camel-core/src/main/java/org/apache/camel/impl/DefaultEndpointRegistry.java ---------------------------------------------------------------------- diff --git a/camel-core/src/main/java/org/apache/camel/impl/DefaultEndpointRegistry.java b/camel-core/src/main/java/org/apache/camel/impl/DefaultEndpointRegistry.java index 70199a4..71175a4 100644 --- a/camel-core/src/main/java/org/apache/camel/impl/DefaultEndpointRegistry.java +++ b/camel-core/src/main/java/org/apache/camel/impl/DefaultEndpointRegistry.java @@ -64,7 +64,7 @@ public class DefaultEndpointRegistry extends LRUCache<EndpointKey, Endpoint> imp if (answer == null) { answer = super.get(o); } else { - hits.incrementAndGet(); + hits.increment(); } return answer; } http://git-wip-us.apache.org/repos/asf/camel/blob/0959a75b/camel-core/src/main/java/org/apache/camel/impl/DefaultTransformerRegistry.java ---------------------------------------------------------------------- diff --git a/camel-core/src/main/java/org/apache/camel/impl/DefaultTransformerRegistry.java b/camel-core/src/main/java/org/apache/camel/impl/DefaultTransformerRegistry.java index 52a9391..feeb5f0 100644 --- a/camel-core/src/main/java/org/apache/camel/impl/DefaultTransformerRegistry.java +++ b/camel-core/src/main/java/org/apache/camel/impl/DefaultTransformerRegistry.java @@ -118,7 +118,7 @@ public class DefaultTransformerRegistry extends LRUCache<TransformerKey, Transfo if (answer == null) { answer = super.get(o); } else { - hits.incrementAndGet(); + hits.increment(); } return answer; } http://git-wip-us.apache.org/repos/asf/camel/blob/0959a75b/camel-core/src/main/java/org/apache/camel/impl/DefaultValidatorRegistry.java ---------------------------------------------------------------------- diff --git a/camel-core/src/main/java/org/apache/camel/impl/DefaultValidatorRegistry.java b/camel-core/src/main/java/org/apache/camel/impl/DefaultValidatorRegistry.java index 85f6690..bcd91d7 100644 --- a/camel-core/src/main/java/org/apache/camel/impl/DefaultValidatorRegistry.java +++ b/camel-core/src/main/java/org/apache/camel/impl/DefaultValidatorRegistry.java @@ -82,7 +82,7 @@ public class DefaultValidatorRegistry extends LRUCache<ValidatorKey, Validator> if (answer == null) { answer = super.get(o); } else { - hits.incrementAndGet(); + hits.increment(); } return answer; } http://git-wip-us.apache.org/repos/asf/camel/blob/0959a75b/camel-core/src/main/java/org/apache/camel/util/LRUCache.java ---------------------------------------------------------------------- diff --git a/camel-core/src/main/java/org/apache/camel/util/LRUCache.java b/camel-core/src/main/java/org/apache/camel/util/LRUCache.java index dda974f..87c1fb0 100644 --- a/camel-core/src/main/java/org/apache/camel/util/LRUCache.java +++ b/camel-core/src/main/java/org/apache/camel/util/LRUCache.java @@ -20,7 +20,7 @@ import java.io.Serializable; import java.util.Collection; import java.util.Map; import java.util.Set; -import java.util.concurrent.atomic.AtomicLong; +import java.util.concurrent.atomic.LongAdder; import com.github.benmanes.caffeine.cache.Cache; import com.github.benmanes.caffeine.cache.Caffeine; @@ -43,9 +43,9 @@ import org.slf4j.LoggerFactory; public class LRUCache<K, V> implements Map<K, V>, RemovalListener<K, V>, Serializable { private static final Logger LOG = LoggerFactory.getLogger(LRUCache.class); - protected final AtomicLong hits = new AtomicLong(); - protected final AtomicLong misses = new AtomicLong(); - protected final AtomicLong evicted = new AtomicLong(); + protected final LongAdder hits = new LongAdder(); + protected final LongAdder misses = new LongAdder(); + protected final LongAdder evicted = new LongAdder(); private int maxCacheSize = 10000; private boolean stopOnEviction; @@ -127,9 +127,9 @@ public class LRUCache<K, V> implements Map<K, V>, RemovalListener<K, V>, Seriali public V get(Object o) { V answer = map.get(o); if (answer != null) { - hits.incrementAndGet(); + hits.increment(); } else { - misses.incrementAndGet(); + misses.increment(); } return answer; } @@ -192,7 +192,7 @@ public class LRUCache<K, V> implements Map<K, V>, RemovalListener<K, V>, Seriali @Override public void onRemoval(K key, V value, RemovalCause cause) { if (cause.wasEvicted()) { - evicted.incrementAndGet(); + evicted.increment(); LOG.trace("onRemoval {} -> {}", key, value); if (stopOnEviction) { try { @@ -209,21 +209,21 @@ public class LRUCache<K, V> implements Map<K, V>, RemovalListener<K, V>, Seriali * Gets the number of cache hits */ public long getHits() { - return hits.get(); + return hits.longValue(); } /** * Gets the number of cache misses. */ public long getMisses() { - return misses.get(); + return misses.longValue(); } /** * Gets the number of evicted entries. */ public long getEvicted() { - return evicted.get(); + return evicted.longValue(); } /** @@ -237,9 +237,9 @@ public class LRUCache<K, V> implements Map<K, V>, RemovalListener<K, V>, Seriali * Rest the cache statistics such as hits and misses. */ public void resetStatistics() { - hits.set(0); - misses.set(0); - evicted.set(0); + hits.reset(); + misses.reset(); + evicted.reset(); } public void cleanUp() {