在這裏,我發現了一個問題,即同一個類的實例的大小是不是在不同版本的JVM相同的(它在1.6.0_21和 在1.6 .0_31)。儘管代碼是相同的。 你有沒有遇到過類似的問題?或者你有什麼建議?實例的大小在不同的JVM不同
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();
}
}
}
這是怎麼對你的問題嗎? – nhahtdh
如果我使用jre 1.6.0_21,則總內存使用量將大於使用1.6.0_31的總內存使用量。 –
所以不要使用1.6.0_21。畢竟它是非常過時的。 –