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 2012/03/23 20:11:32 UTC
svn commit: r1304564 - in /lucene/dev/trunk/lucene/core/src:
java/org/apache/lucene/util/RamUsageEstimator.java
test/org/apache/lucene/util/TestRamUsageEstimator.java
Author: uschindler
Date: Fri Mar 23 19:11:31 2012
New Revision: 1304564
URL: http://svn.apache.org/viewvc?rev=1304564&view=rev
Log:
LUCENE-3867: Remove useless catch block, print more diagnotic information (32 bit HVMs never suppoort OBJECT_ALIGNMENT detection)
Modified:
lucene/dev/trunk/lucene/core/src/java/org/apache/lucene/util/RamUsageEstimator.java
lucene/dev/trunk/lucene/core/src/test/org/apache/lucene/util/TestRamUsageEstimator.java
Modified: lucene/dev/trunk/lucene/core/src/java/org/apache/lucene/util/RamUsageEstimator.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/lucene/core/src/java/org/apache/lucene/util/RamUsageEstimator.java?rev=1304564&r1=1304563&r2=1304564&view=diff
==============================================================================
--- lucene/dev/trunk/lucene/core/src/java/org/apache/lucene/util/RamUsageEstimator.java (original)
+++ lucene/dev/trunk/lucene/core/src/java/org/apache/lucene/util/RamUsageEstimator.java Fri Mar 23 19:11:31 2012
@@ -37,10 +37,10 @@ public final class RamUsageEstimator {
* JVM diagnostic features.
*/
public static enum JvmFeature {
- OBJECT_REFERENCE_SIZE("Object reference size estimated using array index scale."),
- ARRAY_HEADER_SIZE("Array header size estimated using array based offset."),
- FIELD_OFFSETS("Shallow instance size based on field offsets."),
- OBJECT_ALIGNMENT("Object alignment retrieved from HotSpotDiagnostic MX bean.");
+ OBJECT_REFERENCE_SIZE("Object reference size estimated using array index scale"),
+ ARRAY_HEADER_SIZE("Array header size estimated using array based offset"),
+ FIELD_OFFSETS("Shallow instance size based on field offsets"),
+ OBJECT_ALIGNMENT("Object alignment retrieved from HotSpotDiagnostic MX bean");
public final String description;
@@ -219,17 +219,11 @@ public final class RamUsageEstimator {
beanClazz
);
final Method getVMOptionMethod = beanClazz.getMethod("getVMOption", String.class);
- try {
- final Object vmOption = getVMOptionMethod.invoke(hotSpotBean, "ObjectAlignmentInBytes");
- objectAlignment = Integer.parseInt(
- vmOption.getClass().getMethod("getValue").invoke(vmOption).toString()
- );
- supportedFeatures.add(JvmFeature.OBJECT_ALIGNMENT);
- } catch (InvocationTargetException ite) {
- if (!(ite.getCause() instanceof IllegalArgumentException))
- throw ite;
- // ignore the error completely and use default of 8 (32 bit JVMs).
- }
+ final Object vmOption = getVMOptionMethod.invoke(hotSpotBean, "ObjectAlignmentInBytes");
+ objectAlignment = Integer.parseInt(
+ vmOption.getClass().getMethod("getValue").invoke(vmOption).toString()
+ );
+ supportedFeatures.add(JvmFeature.OBJECT_ALIGNMENT);
} catch (Exception e) {
// Ignore.
}
Modified: lucene/dev/trunk/lucene/core/src/test/org/apache/lucene/util/TestRamUsageEstimator.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/lucene/core/src/test/org/apache/lucene/util/TestRamUsageEstimator.java?rev=1304564&r1=1304563&r2=1304564&view=diff
==============================================================================
--- lucene/dev/trunk/lucene/core/src/test/org/apache/lucene/util/TestRamUsageEstimator.java (original)
+++ lucene/dev/trunk/lucene/core/src/test/org/apache/lucene/util/TestRamUsageEstimator.java Fri Mar 23 19:11:31 2012
@@ -89,10 +89,16 @@ public class TestRamUsageEstimator exten
public void testReferenceSize() {
if (!isSupportedJVM()) {
System.err.println("WARN: Your JVM does not support certain Oracle/Sun extensions.");
- System.err.println(" Memory estimates may be inaccurate.");
- System.err.println(" Please report this to the Lucene mailing list. JVM version: " + RamUsageEstimator.JVM_INFO_STRING);
+ System.err.println(" Memory estimates may be inaccurate.");
+ System.err.println(" Please report this to the Lucene mailing list.");
+ System.err.println("JVM version: " + RamUsageEstimator.JVM_INFO_STRING);
+ System.err.println("UnsupportedFeatures:");
for (JvmFeature f : RamUsageEstimator.getUnsupportedFeatures()) {
- System.err.println(" - " + f.toString());
+ System.err.print(" - " + f.toString());
+ if (f == RamUsageEstimator.JvmFeature.OBJECT_ALIGNMENT) {
+ System.err.print("; Please note: 32bit Oracle/Sun VMs don't allow exact OBJECT_ALIGNMENT retrieval, this is a known issue.");
+ }
+ System.err.println();
}
}