JVM参数

jvm之-XX:+UseCompressedOops作用

 http://www.yayihouse.com/yayishuwu/chapter/1956

解决方法:

new一个空对象在32为系统中占用内存大小是8byte(对象头,在堆中)+4byte(对象的引用地址,在栈中)=12byte;

new一个空对象在64为系统中占用内存大小是16byte(对象头,在堆中)+8byte(对象的引用地址,在栈中)=24byte;

可想而知同一个对象在64位系统中占的内存加大一半了,不仅消耗运行内存,而且GC回收时挺耗cpu的。

jvm的属性-XX:+UseCompressedOops在JDK 1.6和之后的版本都默认开启了,所以jvm开启了压缩之后64为系统的对象也只占用12byte。

原文地址:https://www.cnblogs.com/dingpeng9055/p/13470554.html