gpt4 book ai didi

java - VisualVM - "Used heap"中包含什么?

转载 作者:行者123 更新时间:2023-12-02 08:24:44 25 4
gpt4 key购买 nike

我试图理解 visualvm 的输出(需要使用相同的信息创建控制台实用程序) - 但无法理解 - 哪些 Java 内存部分包含在其中“已使用的堆”?

例如 - 让我们采取:

$ jmap -heap 27200
Attaching to process ID 27200, please wait...
Debugger attached successfully.
Server compiler detected.
JVM version is 20.45-b01

using thread-local object allocation.
Parallel GC with 4 thread(s)

Heap Configuration:
MinHeapFreeRatio = 40
MaxHeapFreeRatio = 70
MaxHeapSize = 1073741824 (1024.0MB)
NewSize = 1310720 (1.25MB)
MaxNewSize = 17592186044415 MB
OldSize = 5439488 (5.1875MB)
NewRatio = 2
SurvivorRatio = 8
PermSize = 21757952 (20.75MB)
MaxPermSize = 1073741824 (1024.0MB)

Heap Usage:
PS Young Generation
Eden Space:
capacity = 352452608 (336.125MB)
used = 319379152 (304.5836944580078MB)
free = 33073456 (31.541305541992188MB)
90.61619768181713% used
From Space:
capacity = 2686976 (2.5625MB)
used = 2326528 (2.21875MB)
free = 360448 (0.34375MB)
86.58536585365853% used
To Space:
capacity = 2752512 (2.625MB)
used = 0 (0.0MB)
free = 2752512 (2.625MB)
0.0% used
PS Old Generation
capacity = 715849728 (682.6875MB)
used = 253887896 (242.1263656616211MB)
free = 461961832 (440.5611343383789MB)
35.46664698879371% used
PS Perm Generation
capacity = 185139200 (176.5625MB)
used = 126335488 (120.48291015625MB)
free = 58803712 (56.07958984375MB)
68.23810840707965% used

我的建议 - visualvm 的“已用堆”是:

Eden Space + From Space + To Space + 老一代(没有Perm Generation - 正如其他选项卡上显示的那样)

正确吗?

最佳答案

我相信你的假设是正确的,该图显示了一个橙色区域,它代表为该 JVM 实例预先分配的总堆空间(即由 -Xmx、-Xms 定义),而通常振荡的蓝色区域是实时监控堆空间,堆空间由Young(Eden,Survivor = From&To)和Old代空间组成。

因此,如果您需要解析来自 jmap 的信息并在命令行界面实用程序中显示此数据,则需要解析包含此信息的所有行(不包括您指出的“永久代”):已使用 = 319379152 (304.5836944580078MB)

改进工具的建议是提交一份特别报告,重点关注老一代空间的重大变化,因为这将反射(reflect)完整的 GC 周期(自“停止-”以来,这比年轻区域的周期更重要) the-world' 算法会影响应用程序的性能),您可以检查此类循环的频率,如果您想要更复杂的方法,请解析完整 GC 循环期间的 GC 日志。

如果您有兴趣,我的博客中有一篇关于它的文章: https://marcelorjava.wordpress.com/2011/01/21/logs-do-garbage-collector/

关于java - VisualVM - "Used heap"中包含什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24611601/

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