我正在尝试使用heap和jstat命令来分析使用Java的不同IDE和程序的堆使用情况,因为我的计算机速度非常慢。
我有16 GIG Ram,我的最小堆是252MB,我的最大堆是3,9 Gig。现在我想知道不同程序的堆使用情况。
jmap是实验性的并在第60版中删除了,你能告诉我是否有
1)使用Java高级管理控制台在版本144中使用jmap的方法?如果是这样,怎么样?
2)第三方用于分析Java堆使用情况的替代程序/命令行管理器?
3)Java Usage Tracker会替代吗?如果是这样,我需要考虑什么?
谢谢。
BR, SN
答案 0 :(得分:0)
您可以在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 1048576K