猿问

Java:JVM 内存消耗

我在玩 Java、参数 -Xms 和类运行时。


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


Runtime rt Runtime.getRuntime ();

long total = rt.totalMemory ()

long free = rt.freeMemory ();

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


-Xms4000m 

以及与


-Xms90m

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


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


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



喵喵时光机
浏览 199回答 2
2回答

慕婉清6462132

获取应用程序的PID,您可以通过以下方式使用top命令打印统计信息。顶-b | grep PID您可以看到随着时间的推移内存是如何被利用的。

慕少森

如果您使用的是 Oracle JVM,则可以使用命令行工具jmap或 GUI 工具jvisualvm来测量 Java 程序的堆消耗。
随时随地看视频慕课网APP

相关分类

Java
我要回答