Mercurial > hg > digilib-old
diff common/src/main/java/digilib/io/DocuDirCache.java @ 937:7bcc6765c209
improved runtime statistics
author | robcast |
---|---|
date | Wed, 21 Dec 2011 19:18:16 +0100 |
parents | 7779b37d1d05 |
children |
line wrap: on
line diff
--- a/common/src/main/java/digilib/io/DocuDirCache.java Wed Dec 21 17:57:30 2011 +0100 +++ b/common/src/main/java/digilib/io/DocuDirCache.java Wed Dec 21 19:18:16 2011 +0100 @@ -27,6 +27,7 @@ import java.util.List; import java.util.concurrent.ConcurrentHashMap; import java.util.concurrent.ConcurrentMap; +import java.util.concurrent.atomic.AtomicInteger; import org.apache.log4j.Logger; @@ -51,13 +52,13 @@ private FileClass[] fileClasses = null; /** number of files in the whole cache (approximate) */ - long numFiles = 0; + protected AtomicInteger numImgFiles = new AtomicInteger(0); /** number of cache hits */ - long hits = 0; + protected AtomicInteger hits = new AtomicInteger(0); /** number of cache misses */ - long misses = 0; + protected AtomicInteger misses = new AtomicInteger(0); /** the root directory element */ public static Directory ROOT = null; @@ -111,7 +112,7 @@ logger.warn("Duplicate key in DocuDirCache.put -- ignoring!"); return olddir; } - numFiles += newdir.size(); + numImgFiles.addAndGet(newdir.size(FileClass.IMAGE)); return newdir; } @@ -193,7 +194,7 @@ dd = map.get(fn); if (dd == null) { // cache miss - misses++; + misses.incrementAndGet(); /* * see if fn is a directory */ @@ -228,14 +229,14 @@ } } else { // it was not a real cache miss - misses--; + misses.decrementAndGet(); } // get the file's index n = dd.indexOf(f.getName(), fc); } } else { // cache hit - hits++; + hits.incrementAndGet(); } dd.refresh(); if (dd.isValid()) { @@ -263,7 +264,7 @@ dd = map.get(fn); if (dd == null) { // cache miss - misses++; + misses.incrementAndGet(); // see if it's a directory File f = new File(baseDirNames[0], fn); if (f.isDirectory()) { @@ -289,7 +290,7 @@ } } else { // not a real cache miss then - misses--; + misses.decrementAndGet(); } } else { // it's not even a file :-( @@ -298,7 +299,7 @@ } } else { // cache hit - hits++; + hits.incrementAndGet(); } dd.refresh(); if (dd.isValid()) { @@ -315,13 +316,6 @@ } /** - * @return long - */ - public long getNumFiles() { - return numFiles; - } - - /** * Sets the baseDirNames. * * @param baseDirNames @@ -331,18 +325,25 @@ this.baseDirNames = baseDirNames; } + /** + * @return long + */ + public int getNumFiles() { + return numImgFiles.get(); + } + /** * @return long */ - public long getHits() { - return hits; + public int getHits() { + return hits.get(); } /** * @return long */ - public long getMisses() { - return misses; + public int getMisses() { + return misses.get(); } /**