JMap替代品有哪些?

Nik*_*shi 5 java profiling jmap

当我在jmap命令下运行时:

jmap -histo 14104
Run Code Online (Sandbox Code Playgroud)

我能够看到我的对象非常好的输出,有实例,使用的字节.

 num     #instances         #bytes  class name
----------------------------------------------
   1:       1308333      398374280  [C
   2:         55058       84410136  [B
   3:       1548041       49537312  java.lang.ref.Finalizer
   4:       1584594       38030256  java.util.HashMap$Entry
   5:       1327543       31861032  java.lang.String
   6:        765682       25734336  [Ljava.lang.Object;
Run Code Online (Sandbox Code Playgroud)

但遗憾的是,Oracle不支持此功能,并且最新的Windows和Linux JDK发行版中不提供此功能.有人可以帮助建议替代jmap吗?

jso*_*ski 0

首先,jmap在设置目录的所有权限后,它适用于 Windows 10 和 JDK 1.8.0_192 %TMP%\hsperfdata_<username>

jmap其次,您可以使用VisualVM工具代替:

内存采样器模式下的 VisualVM

它有一个Sampler实用程序,可以检查堆直方图。

如果您在左侧列表中没有看到您的 Java 进程,请尝试使用-Dcom.sun.management.jmxremote属性。