我正在尝试使用heap和jstat命令来分析不同的IDE和使用Java的程序对堆的使用情况,因为我的机器运行速度非常慢。

我有16个GIG Ram,我的最小堆是252MB,我的最大堆是3,9 Gig。现在我想知道不同程序的堆使用情况。

jmap是实验性的,已在版本60中删除,请您告诉我是否有

1)使用Java Advanced Management Console在144版中使用jmap的方法?如果是这样,怎么办?

2)由第三方提供的替代程序/命令行管理器来分析Java堆使用情况?

3)Java Usage Tracker是否可以替代?如果是这样,我需要考虑什么?

谢谢。

BR
序号

最佳答案

您可以在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

关于server - 分析Java 8 Release 144中的堆使用情况-功能已删除?那么如何分析堆呢?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/45729922/

10-15 01:23
查看更多