UseCompressedOops JVM标志有什么作用,什么时候应该使用它?

HotSpot

JVM标志-XX:+UseCompressedOops有什么作用,什么时候应该使用它?在64位Java实例上使用它时(相对于未使用它),我会看到什么样的性能和内存使用差异?

回答:

默认情况下,去年的大多数HotSpot JVM均已启用它。此选项允许引用在64位JVM中为32位,并访问接近32

GB的堆。(可以使用32位以上的指针)(您也可以拥有几乎无限的堆外内存)。这样可以节省大量内存,并有可能提高性能。

如果要使用此选项,建议您更新到默认情况下已启用的版本,因为可能有充分的理由(例如错误),为什么以前未启用它。尝试使用Java 6 Update

23或Java 7 Update 5。

简而言之,不要打开它,使用默认打开它的版本。


更新:

在Java 8中,您可以选择设置-XX:ObjectAlignmentInBytes=,实际上,如果您将堆大小设置为64

GB,它将使用-XX:ObjectAlignmentInBytes=16并且仍然使用32位引用。

以上是 UseCompressedOops JVM标志有什么作用,什么时候应该使用它? 的全部内容, 来源链接: utcz.com/qa/431152.html

回到顶部