You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@lucene.apache.org by us...@apache.org on 2015/09/13 03:39:01 UTC
svn commit: r1702692 -
/lucene/dev/branches/branch_5x/lucene/test-framework/src/java/org/apache/lucene/util/RamUsageTester.java
Author: uschindler
Date: Sun Sep 13 01:39:01 2015
New Revision: 1702692
URL: http://svn.apache.org/r1702692
Log:
LUCENE-6795: Improve RamUsageTester in 5.x (no lambdas available)
Modified:
lucene/dev/branches/branch_5x/lucene/test-framework/src/java/org/apache/lucene/util/RamUsageTester.java
Modified: lucene/dev/branches/branch_5x/lucene/test-framework/src/java/org/apache/lucene/util/RamUsageTester.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_5x/lucene/test-framework/src/java/org/apache/lucene/util/RamUsageTester.java?rev=1702692&r1=1702691&r2=1702692&view=diff
==============================================================================
--- lucene/dev/branches/branch_5x/lucene/test-framework/src/java/org/apache/lucene/util/RamUsageTester.java (original)
+++ lucene/dev/branches/branch_5x/lucene/test-framework/src/java/org/apache/lucene/util/RamUsageTester.java Sun Sep 13 01:39:01 2015
@@ -187,37 +187,37 @@ public final class RamUsageTester {
* a given class.
*/
private static ClassCache createCacheEntry(final Class<?> clazz) {
- ClassCache cachedInfo;
- long shallowInstanceSize = RamUsageEstimator.NUM_BYTES_OBJECT_HEADER;
- final ArrayList<Field> referenceFields = new ArrayList<>(32);
- for (Class<?> c = clazz; c != null; c = c.getSuperclass()) {
- if (c == Class.class) {
- // prevent inspection of Class' fields, throws SecurityException in Java 9!
- continue;
- }
- final Field[] fields = c.getDeclaredFields();
- for (final Field f : fields) {
- if (!Modifier.isStatic(f.getModifiers())) {
- shallowInstanceSize = RamUsageEstimator.adjustForField(shallowInstanceSize, f);
-
- if (!f.getType().isPrimitive()) {
- referenceFields.add(AccessController.doPrivileged(new PrivilegedAction<Field>() {
- @Override
- @SuppressForbidden(reason = "We need to access private fields of measured objects.")
- public Field run() {
+ return AccessController.doPrivileged(new PrivilegedAction<ClassCache>() {
+ @Override
+ @SuppressForbidden(reason = "We need to access private fields of measured objects.")
+ public ClassCache run() {
+ ClassCache cachedInfo;
+ long shallowInstanceSize = RamUsageEstimator.NUM_BYTES_OBJECT_HEADER;
+ final ArrayList<Field> referenceFields = new ArrayList<>(32);
+ for (Class<?> c = clazz; c != null; c = c.getSuperclass()) {
+ if (c == Class.class) {
+ // prevent inspection of Class' fields, throws SecurityException in Java 9!
+ continue;
+ }
+ final Field[] fields = c.getDeclaredFields();
+ for (final Field f : fields) {
+ if (!Modifier.isStatic(f.getModifiers())) {
+ shallowInstanceSize = RamUsageEstimator.adjustForField(shallowInstanceSize, f);
+
+ if (!f.getType().isPrimitive()) {
f.setAccessible(true);
- return f;
+ referenceFields.add(f);
}
- }));
+ }
}
}
- }
- }
- cachedInfo = new ClassCache(
- RamUsageEstimator.alignObjectSize(shallowInstanceSize),
- referenceFields.toArray(new Field[referenceFields.size()]));
- return cachedInfo;
+ cachedInfo = new ClassCache(
+ RamUsageEstimator.alignObjectSize(shallowInstanceSize),
+ referenceFields.toArray(new Field[referenceFields.size()]));
+ return cachedInfo;
+ }
+ });
}
}