Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/392.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 使用VM命令行查找执行期间分配的最大堆大小?_Java_Garbage Collection_Jvm - Fatal编程技术网

Java 使用VM命令行查找执行期间分配的最大堆大小?

Java 使用VM命令行查找执行期间分配的最大堆大小?,java,garbage-collection,jvm,Java,Garbage Collection,Jvm,我想知道是否可以使用VM命令行获得分配堆的最大大小 从现在起,我可以使用netbeansprofiler获取结果,但我更喜欢在不启动额外应用程序的情况下获得结果 我也在使用这种方法: public void printMemUsage(){ double currentMemory = ( (double)((double)(Runtime.getRuntime().totalMemory()/1024.0)))- ((double)((double)(Runtime.getRu

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

从现在起,我可以使用
netbeansprofiler
获取结果,但我更喜欢在不启动额外应用程序的情况下获得结果

我也在使用这种方法:

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);
}
我想我也可以使用它来获得最大堆大小,但我不确定它是否非常可靠

我目前使用这些命令行:

-详细信息:gc-XX:+PrintGCDetails-XX:+PrintGCApplicationConcurrentTime-XX:+PrintGCApplicationStoppedTime

为了获得有关gc活性、年轻一代、年老一代和永久一代的良好信息。但我只能告诉当前的总堆空间,当集合发生时


那么,有没有一种方法可以获得使用其他命令行分配的最大堆空间呢?

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

谢谢你的回答!顺便说一句,这不是我真正想要的。我使用上面的
printMemUsage()
方法获得了相同的结果。给你+1,因为其他一些
MemoryMXBean
方法可以帮助我;)