You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@lucene.apache.org by mi...@apache.org on 2013/04/29 23:22:22 UTC
svn commit: r1477348 - in /lucene/dev/branches/branch_4x/lucene: CHANGES.txt
core/src/java/org/apache/lucene/search/CachingWrapperFilter.java
core/src/test/org/apache/lucene/search/TestCachingWrapperFilter.java
Author: mikemccand
Date: Mon Apr 29 21:22:15 2013
New Revision: 1477348
URL: http://svn.apache.org/r1477348
Log:
LUCENE-4966: add CachingWrapperFilter.sizeInBytes
Modified:
lucene/dev/branches/branch_4x/lucene/CHANGES.txt
lucene/dev/branches/branch_4x/lucene/core/src/java/org/apache/lucene/search/CachingWrapperFilter.java
lucene/dev/branches/branch_4x/lucene/core/src/test/org/apache/lucene/search/TestCachingWrapperFilter.java
Modified: lucene/dev/branches/branch_4x/lucene/CHANGES.txt
URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_4x/lucene/CHANGES.txt?rev=1477348&r1=1477347&r2=1477348&view=diff
==============================================================================
--- lucene/dev/branches/branch_4x/lucene/CHANGES.txt (original)
+++ lucene/dev/branches/branch_4x/lucene/CHANGES.txt Mon Apr 29 21:22:15 2013
@@ -67,6 +67,8 @@ New Features
DrillDownQuery and DrillSideways, to support future dynamic faceting
methods (Mike McCandless)
+* LUCENE-4966: Add CachingWrapperFilter.sizeInBytes() (Mike McCandless)
+
======================= Lucene 4.3.0 =======================
Changes in backwards compatibility policy
Modified: lucene/dev/branches/branch_4x/lucene/core/src/java/org/apache/lucene/search/CachingWrapperFilter.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_4x/lucene/core/src/java/org/apache/lucene/search/CachingWrapperFilter.java?rev=1477348&r1=1477347&r2=1477348&view=diff
==============================================================================
--- lucene/dev/branches/branch_4x/lucene/core/src/java/org/apache/lucene/search/CachingWrapperFilter.java (original)
+++ lucene/dev/branches/branch_4x/lucene/core/src/java/org/apache/lucene/search/CachingWrapperFilter.java Mon Apr 29 21:22:15 2013
@@ -18,14 +18,17 @@ package org.apache.lucene.search;
*/
import java.io.IOException;
+import java.util.ArrayList;
import java.util.Collections;
+import java.util.List;
import java.util.Map;
import java.util.WeakHashMap;
import org.apache.lucene.index.AtomicReader;
import org.apache.lucene.index.AtomicReaderContext;
-import org.apache.lucene.util.FixedBitSet;
import org.apache.lucene.util.Bits;
+import org.apache.lucene.util.FixedBitSet;
+import org.apache.lucene.util.RamUsageEstimator;
/**
* Wraps another {@link Filter}'s result and caches it. The purpose is to allow
@@ -132,4 +135,21 @@ public class CachingWrapperFilter extend
return null;
}
};
+
+ /** Returns total byte size used by cached filters. */
+ public long sizeInBytes() {
+
+ // Sync only to pull the current set of values:
+ List<DocIdSet> docIdSets;
+ synchronized(cache) {
+ docIdSets = new ArrayList<DocIdSet>(cache.values());
+ }
+
+ long total = 0;
+ for(DocIdSet dis : docIdSets) {
+ total += RamUsageEstimator.sizeOf(dis);
+ }
+
+ return total;
+ }
}
Modified: lucene/dev/branches/branch_4x/lucene/core/src/test/org/apache/lucene/search/TestCachingWrapperFilter.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_4x/lucene/core/src/test/org/apache/lucene/search/TestCachingWrapperFilter.java?rev=1477348&r1=1477347&r2=1477348&view=diff
==============================================================================
--- lucene/dev/branches/branch_4x/lucene/core/src/test/org/apache/lucene/search/TestCachingWrapperFilter.java (original)
+++ lucene/dev/branches/branch_4x/lucene/core/src/test/org/apache/lucene/search/TestCachingWrapperFilter.java Mon Apr 29 21:22:15 2013
@@ -199,6 +199,7 @@ public class TestCachingWrapperFilter ex
CachingWrapperFilter filter = new CachingWrapperFilter(startFilter);
docs = searcher.search(new MatchAllDocsQuery(), filter, 1);
+ assertTrue(filter.sizeInBytes() > 0);
assertEquals("[query + filter] Should find a hit...", 1, docs.totalHits);