Author: tedyu
Date: Fri May 24 23:05:53 2013
New Revision: 1486249

URL: http://svn.apache.org/r1486249
Log:
HBASE-8603 Backport HBASE-6921 to 0.94 (Ted Yu)


Modified:
    
hbase/branches/0.94/src/main/java/org/apache/hadoop/hbase/util/ClassSize.java

Modified: 
hbase/branches/0.94/src/main/java/org/apache/hadoop/hbase/util/ClassSize.java
URL: 
http://svn.apache.org/viewvc/hbase/branches/0.94/src/main/java/org/apache/hadoop/hbase/util/ClassSize.java?rev=1486249&r1=1486248&r2=1486249&view=diff
==============================================================================
--- 
hbase/branches/0.94/src/main/java/org/apache/hadoop/hbase/util/ClassSize.java 
(original)
+++ 
hbase/branches/0.94/src/main/java/org/apache/hadoop/hbase/util/ClassSize.java 
Fri May 24 23:05:53 2013
@@ -20,6 +20,8 @@
 
 package org.apache.hadoop.hbase.util;
 
+import java.util.concurrent.ConcurrentHashMap;
+
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
 
@@ -141,10 +143,14 @@ public class ClassSize {
 
     TREEMAP = align(OBJECT + (2 * Bytes.SIZEOF_INT) + align(7 * REFERENCE));
 
-    STRING = align(OBJECT + ARRAY + REFERENCE + ((JDK7? 2: 3) * 
Bytes.SIZEOF_INT));
-
-    CONCURRENT_HASHMAP = align(((JDK7? 3: 2) * Bytes.SIZEOF_INT) + ARRAY +
-        (6 * REFERENCE) + OBJECT);
+    // STRING is different size in jdk6 and jdk7. Just use what we estimate as 
size rather than
+    // have a conditional on whether jdk7.
+    STRING = (int) estimateBase(String.class, false);
+
+    // CONCURRENT_HASHMAP is different size in jdk6 and jdk7; it looks like 
its different between
+    // 23.6-b03 and 23.0-b21. Just use what we estimate as size rather than 
have a conditional on
+    // whether jdk7.
+    CONCURRENT_HASHMAP = (int) estimateBase(ConcurrentHashMap.class, false);
 
     CONCURRENT_HASHMAP_ENTRY = align(REFERENCE + OBJECT + (3 * REFERENCE) +
         (2 * Bytes.SIZEOF_INT));


Reply via email to