想知道是否存在使用-XX:+ UseCompressedOops不是最佳的情况?看起来使用此选项有很多好处。
答案 0 :(得分:1)
看起来你不是第一个这么想的人。 根据{{3}},除非你使用超过32GB的堆,否则它就会开启。
禁用它将是一种罕见的边缘情况,例如针对错误或类似事情的解决方法。
此选项的重要性也可以通过Java的事实来实现 6更新18 Oracle默认启用-XX:+ HotSpot中的UseCompressedOops JVM基于最大Java堆大小。
答案 1 :(得分:0)
为什么[...]没有默认
热点JVM中的许多设置都是基于各种系统属性以及其他参数自动配置的。因此,不存在一组固定的默认值。
要查看实际应用了哪些标记,您可以添加-XX:+PrintFlagsFinal
,这将在某些情况下显示正在运行的压缩oops。
$ java -Xmx64g -XX:+PrintFlagsFinal | grep UseCompressedOops
bool UseCompressedOops = false {lp64_product}
$ java -XX:+PrintFlagsFinal | grep UseCompressedOops
bool UseCompressedOops := true {lp64_product}