Details
diff --git a/src/main/java/br/ufrgs/inf/prosoft/cache/CachingPerformance.java b/src/main/java/br/ufrgs/inf/prosoft/cache/CachingPerformance.java
index 3f03ba5..7e9b4f4 100644
--- a/src/main/java/br/ufrgs/inf/prosoft/cache/CachingPerformance.java
+++ b/src/main/java/br/ufrgs/inf/prosoft/cache/CachingPerformance.java
@@ -18,17 +18,26 @@ public class CachingPerformance {
private int hits;
private int invalidations;
private int maximumSize;
+ private String name;
public CachingPerformance() {
+ this.name = "AnonymousCache";
Runtime.getRuntime().addShutdownHook(new Thread() {
@Override
public void run() {
Logger.getLogger(CachingPerformance.class.getName()).log(Level.INFO, "printing caching metrics");
- System.out.println(CachingPerformance.this);
+ System.out.print(CachingPerformance.this.name);
+ System.out.print(": ");
+ System.out.println(CachingPerformance.this.toLongString());
}
});
}
+ public CachingPerformance(String name) {
+ super();
+ this.name = name;
+ }
+
public void reduce(CachingPerformance cachingPerformance) {
this.misses += cachingPerformance.misses;
this.hits += cachingPerformance.hits;
@@ -78,4 +87,14 @@ public class CachingPerformance {
return stringBuilder.toString();
}
+ public String toLongString() {
+ StringBuilder stringBuilder = new StringBuilder();
+ stringBuilder.append("Hits: ").append(this.hits);
+ stringBuilder.append("; Misses: ").append(this.misses);
+ stringBuilder.append("; Hit Ratio: ").append(getHitRatio());
+ stringBuilder.append("%; Invalidations: ").append(this.invalidations);
+ stringBuilder.append("; Maximum Size: ").append(this.maximumSize);
+ return stringBuilder.toString();
+ }
+
}
diff --git a/src/main/java/br/ufrgs/inf/prosoft/cache/GetterCache.java b/src/main/java/br/ufrgs/inf/prosoft/cache/GetterCache.java
index 08a7f82..380ca1c 100644
--- a/src/main/java/br/ufrgs/inf/prosoft/cache/GetterCache.java
+++ b/src/main/java/br/ufrgs/inf/prosoft/cache/GetterCache.java
@@ -23,6 +23,11 @@ public class GetterCache {
this.cachingPerformance = new CachingPerformance();
}
+ public GetterCache(String name) {
+ this.isFilled = false;
+ this.cachingPerformance = new CachingPerformance(name);
+ }
+
public GetterCache(CachingPerformance cachingPerformance) {
this.isFilled = false;
this.cachingPerformance = cachingPerformance;
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 de0dc83..a4476f2 100644
--- a/src/main/java/br/ufrgs/inf/prosoft/cache/MultiCache.java
+++ b/src/main/java/br/ufrgs/inf/prosoft/cache/MultiCache.java
@@ -20,6 +20,10 @@ public class MultiCache extends HashMap<Object, Object> implements Cache {
public MultiCache() {
this.cachingPerformance = new CachingPerformance();
}
+
+ public MultiCache(String name) {
+ this.cachingPerformance = new CachingPerformance(name);
+ }
public MultiCache(CachingPerformance cachingPerformance) {
this.cachingPerformance = cachingPerformance;
diff --git a/src/main/java/br/ufrgs/inf/prosoft/cache/SingleCache.java b/src/main/java/br/ufrgs/inf/prosoft/cache/SingleCache.java
index ff090a7..9427f1c 100644
--- a/src/main/java/br/ufrgs/inf/prosoft/cache/SingleCache.java
+++ b/src/main/java/br/ufrgs/inf/prosoft/cache/SingleCache.java
@@ -21,6 +21,10 @@ public class SingleCache implements Cache {
public SingleCache() {
this.cachingPerformance = new CachingPerformance();
}
+
+ public SingleCache(String name) {
+ this.cachingPerformance = new CachingPerformance(name);
+ }
public SingleCache(CachingPerformance cachingPerformance) {
this.cachingPerformance = cachingPerformance;