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