Here I found a problem that instance size of same class are not same in different version of JVM (it's 40 in 1.6.0_21 and 24 in 1.6.0_31). even though, the code are same. Do you anyone encounter similar problem before? Or do you have any suggestions?
JDK 1.6.0_21
# java -version
java version "1.6.0_21"
Java(TM) SE Runtime Environment (build 1.6.0_21-b06)
Java HotSpot(TM) 64-Bit Server VM (build 17.0-b16, mixed mode)
# java obj.ObjectSize &
# jps | grep ObjectSize
27251 ObjectSize
# jmap -histo 27251 | grep US_ASCII
145: 1 40 sun.nio.cs.US_ASCII
JDK 1.6.0_31
# java -version
java version "1.6.0_31"
Java(TM) SE Runtime Environment (build 1.6.0_31-b04)
Java HotSpot(TM) 64-Bit Server VM (build 20.6-b01, mixed mode)
# java obj.ObjectSize &
# jps | grep ObjectSize
26645 ObjectSize
# jmap -histo 26645 | grep US_ASCII
161: 1 24 sun.nio.cs.US_ASCII
ObjectSize.java
package obj;
import java.util.concurrent.TimeUnit;
import sun.nio.cs.US_ASCII;
public class ObjectSize {
public static void main(String[] args) {
US_ASCII as = new US_ASCII();
System.out.println(as);
try {
TimeUnit.MINUTES.sleep(5);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}