我正在尝试使用heap和jstat命令来分析不同IDE和使用Java的程序的堆使用情况,因为我的机器非常慢。
我有16G的Ram,我的最小堆是252MB,我的最大堆是3.9G。现在我想知道不同程序的堆使用情况。
jmap是实验性的,并在版本60中被删除,您能告诉我是否有
1)通过Java高级管理控制台在版本144中使用jmap的方法?如果是这样的话,是怎么做的?
2)第三方使用替代程序/命令行管理器来分析Java堆的使用情况?
3) Java Usage Tracker会成为替代方案吗?如果是这样,我需要考虑什么?
谢谢。
BR,SN
发布于 2017-11-17 21:23:28
您可以在linux - kill -3 [java-process-number]中进行线程转储,线程转储将出现在进程的日志文件中。在线程转储结束时,您将看到有关堆使用情况的一些统计信息。示例:
Heap
garbage-first heap total 524288K, used 14336K [0x00000007a0000000, 0x00000007a0101000, 0x00000007c0000000)
region size 1024K, 15 young (15360K), 0 survivors (0K)
Metaspace used 8584K, capacity 8688K, committed 8832K, reserved 1056768K
class space used 1022K, capacity 1080K, committed 1152K, reserved 1048576Khttps://stackoverflow.com/questions/45729922
复制相似问题