Java:JVM内存消耗

时间:2018-09-20 08:55:18

标签: java

我正在使用Java,参数-Xms和运行时类。

我看到JVM分配了大约15%的可用内存,而不管它有多少。

Runtime rt Runtime.getRuntime ();
long total = rt.totalMemory ()
long free = rt.freeMemory ();

如果我使用参数启动程序,就是这种情况

-Xms4000m 

以及

-Xms90m

我看到了TotalMemory结果中Xms的差异。

我了解从一开始就分配更多资源的策略,以避免昂贵的重新分配。

但是我不知道这里是否存在,以及如何计算程序的实际内存消耗。

2 个答案:

答案 0 :(得分:1)

如果您使用的是Oracle JVM,则可以使用命令行工具 jmap 或GUI工具 jvisualvm 来测量Java程序的堆消耗。 / p>

答案 1 :(得分:1)

获取应用程序的PID,您可以通过以下方式使用top命令来打印统计信息。

top -b | grep PID

您可以了解一段时间后内存的使用情况。