gpt4 book ai didi

java - 有没有办法确定 OOPS 在 jvm 进程中占用的大小

转载 作者:行者123 更新时间:2023-11-30 10:52:09 25 4
gpt4 key购买 nike

我正在调整在 64 位环境中运行的堆重 Java 应用程序(要求堆大小超过 32G)并打算将 Xmx 增加到适当的数字。

在 32G 之后,OOP(普通对象指针)将不会使用 -XX:+UseCompressedOops 选项进行压缩。因此需要知道我的应用程序中 OOP 的确切大小,以补偿未压缩的 OOPS 并增加所需的额外内存。

有没有办法单独确定 OOP 消耗的总内存?

最佳答案

使用 Java Object Layout 非常简单图书馆是available在 Maven 中心。只需检查 org.openjdk.jol.util.VMSupport.OOP_SIZE 静态字段:

import org.openjdk.jol.util.VMSupport;

public class Test {
public static void main(String[] args) {
// Prints OOP size in bytes: usually 4 or 8
System.out.println(VMSupport.OOP_SIZE);
}
}

示例输出:

$ java -cp jol-core-0.4.jar;bin -Xmx32G Test
8

$ java -cp jol-core-0.4.jar;bin -Xmx31G Test
4

$ java -cp jol-core-0.4.jar;bin -Xmx32G -XX:-UseCompressedOops Test
8

关于java - 有没有办法确定 OOPS 在 jvm 进程中占用的大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34448915/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com