【发布时间】:2016-02-03 19:48:31
【问题描述】:
我正在尝试务实地测量我的应用程序内存占用量。 我正在使用 java.lang.management 类来计算这个
val heap = ManagementFactory.getMemoryMXBean.getHeapMemoryUsage
val nonHeap = ManagementFactory.getMemoryMXBean.getNonHeapMemoryUsage
val total = heap + nonHeap + (?)
我假设两者的总和会给我应用程序使用的内存总量,但事实并非如此,实际大小更大,由 top 命令提供。
所以我想了解我错过了什么?为了得到我的应用程序的总内存使用量,我还需要在这个等式中添加什么。
【问题讨论】:
-
'实际尺寸更大' - 你是如何找到“实际”尺寸的?
-
使用你发现实际尺寸更大的方式。
-
@apangin 实际大小是通过 top 命令获取的。我更新了我的问题。
-
您使用了哪个值?由于其他进程不知道 Java 对象,它们不会告诉您 used 大小,而是 committed 甚至 max 大小。见
MemoryUsage
标签: memory-management jvm java-8