diff --git a/src/main/java/br/ufrgs/inf/prosoft/cache/MultiCache.java b/src/main/java/br/ufrgs/inf/prosoft/cache/MultiCache.java
index fcba33f..bbb0395 100644
--- a/src/main/java/br/ufrgs/inf/prosoft/cache/MultiCache.java
+++ b/src/main/java/br/ufrgs/inf/prosoft/cache/MultiCache.java
@@ -24,7 +24,7 @@ import java.util.stream.Collectors;
*/
public class MultiCache<K, V> implements Cache<K, V> {
- private static final String CACHE_EVENTS = System.getenv("CACHE_EVENTS") != null && !System.getenv("CACHE_EVENTS").isEmpty() ? System.getenv("CACHE_EVENTS") : null;
+ private static final boolean CACHE_EVALUATE_PERFORMANCE = System.getenv("CACHE_EVALUATE_PERFORMANCE") == null || !System.getenv("CACHE_EVALUATE_PERFORMANCE").equals("false");
private static final boolean CACHE_REGISTER_SIZE = System.getenv("CACHE_REGISTER_SIZE") != null && System.getenv("CACHE_REGISTER_SIZE").equals("true");
private final HashMap<K, V> map;
private final ConcurrentHashMap<Optional<K>, Long> keyHasTTL;
@@ -105,9 +105,11 @@ public class MultiCache<K, V> implements Cache<K, V> {
.collect(Collectors.
toMap(entry -> entry.getKey(), entry -> entry.getValue())
).entrySet();
- entrySet.forEach(entry -> {
- registerEvent(EventType.HIT, entry.getValue());
- });
+ if (CACHE_EVALUATE_PERFORMANCE) {
+ entrySet.forEach(entry -> {
+ registerEvent(EventType.HIT, entry.getValue());
+ });
+ }
return entrySet;
}
@@ -116,9 +118,11 @@ public class MultiCache<K, V> implements Cache<K, V> {
.filter(entry -> isValid(entry.getKey()))
.map(entry -> entry.getValue())
.collect(Collectors.toList());
- values.forEach(get -> {
- registerEvent(EventType.HIT, get);
- });
+ if (CACHE_EVALUATE_PERFORMANCE) {
+ values.forEach(get -> {
+ registerEvent(EventType.HIT, get);
+ });
+ }
return values;
}
@@ -131,7 +135,7 @@ public class MultiCache<K, V> implements Cache<K, V> {
}
private void registerEvent(EventType eventType, Object object) {
- if (CACHE_EVENTS == null) {
+ if (!CACHE_EVALUATE_PERFORMANCE) {
return;
}
String identifier = getIdentifier(object);