gpt4 book ai didi

java - 使用 VM 命令行在执行期间找到最大分配的堆大小?

转载 作者:搜寻专家 更新时间:2023-11-01 03:27:40 26 4
gpt4 key购买 nike

我想知道我是否可以使用 VM 命令行获取分配的堆的最大大小。

从现在开始,我可以使用 Netbeans Profiler 获取它,但我更喜欢无需启动额外的应用程序即可获取结果。

我也在用这个方法:

public void printMemUsage(){
double currentMemory = ( (double)((double)(Runtime.getRuntime().totalMemory()/1024.0)))- ((double)((double)(Runtime.getRuntime().freeMemory()/1024.0)));
System.out.println("Current memory usage in kilobytes :"+currentMemory);
}

我想我也可以用它来获得最大堆大小,但我不确定它是否非常可靠。

我目前使用那些命令行:

-verbose:gc -XX:+PrintGCDetails -XX:+PrintGCApplicationConcurrentTime -XX:+PrintGCApplicationStoppedTime

为了得到gc activity,young generation,old和permanent的好信息。但是当收集发生时,我只能知道当前的总堆空间。

那么有没有办法获取使用其他命令行分配的最大堆空间?

最佳答案

您应该使用MemoryMXBean,参见the javadoc有关详细信息,因为它解释了如何使用它来获取有关每个 MemoryPool(也称为生成)的信息以及在不同事件发生时获取通知。

关于java - 使用 VM 命令行在执行期间找到最大分配的堆大小?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9152241/

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