「每日五分钟,玩转JVM」:指针压缩

本文探讨了64位JVM相对于32位JVM的内存优势及挑战,重点介绍了指针压缩(UseCompressedOops)技术,用于减少64位环境下对象指针的内存占用。该技术默认在JDK 8中启用,主要压缩全局静态变量、对象头信息、引用类型和对象数组。然而,特定类型的指针如指向PermGen的Class对象、局部变量、传参和返回值以及NULL指针不会被压缩。文章还提到了零基压缩作为优化手段,并指出32位HotSpot VM不支持指针压缩参数,仅64位版本支持。
摘要由CSDN通过智能技术生成

64位JVM和32位JVM

最初的时候,JVM是32位的,但是随着64位系统的兴起,JVM也迎来了从32位到64位的转换,32位的JVM对比64位的内存容量比较有限,但是我们使用64位虚拟机的同时,也带来了一个问题,64位下的JVM中的对象会比32位中的对象多占用1.5倍的内存空间,这是我们不想看到的(又要马儿跑,又要马儿不吃草可还行?),但是机智的程序员不会屈服,所以在JDK 1.6的版本后,我们在64位中的JVM中可以开启指针压缩(UseCompressedOops)来压缩我们对象指针的大小来帮助我们节约内存空间,拿JDK 8来说,这个指令是默认开启的。

如果我想要知道我们电脑上安装的JVM是32位的还是64位的,可以通过下面的这个命令去查看

如果我们的系统是64位的,当我们输入java -d32的时候会提示不支持32位的JVM,或者我们通过java -version也可以看到:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值