首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >JMap替代方案是否可用?

JMap替代方案是否可用?
EN

Stack Overflow用户
提问于 2015-08-05 21:17:30
回答 3查看 1.7K关注 0票数 5

当我运行下面的jmap命令时:

代码语言:javascript
复制
jmap -histo 14104

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

代码语言:javascript
复制
 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;

但不幸的是,Oracle不支持这一点,并且在最新的Windows和Linux JDK发行版中也不支持。有没有人能帮我推荐一下jmap的替代品?

EN

回答 3

Stack Overflow用户

发布于 2018-12-24 05:01:57

首先,在设置了%TMP%\hsperfdata_<username>目录的所有权限后,jmap可以在Windows10和JDK 1.8.0_192上运行。

其次,你可以使用VisualVM工具而不是jmap

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

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

票数 0
EN

Stack Overflow用户

发布于 2019-09-22 20:12:17

jmap -histo至少现在可以在Oracle JDK上工作。您还可以使用Jconsole获取不同但非常描述性的信息。您可以使用Jhat获取上面看到的信息以及浏览器上的许多其他信息。

票数 0
EN

Stack Overflow用户

发布于 2019-09-22 22:07:40

,但不幸的是,甲骨文不支持这一点,并且在最新的Windows和Linux JDK发行版中也不可用。

这是不正确的信息。

我在安装了OpenJDK Java11的情况下运行Fedora29,jmap肯定是存在的:

代码语言:javascript
复制
$ ls -l /usr/bin/jmap
.... /usr/bin/jmap -> /etc/alternatives/jmap
$ ls -l /etc/alternatives/jmap
.... /etc/alternatives/jmap -> /usr/lib/jvm/java-11-openjdk-11.0.4.11-0.fc29.x86_64/bin/jmap

DebianJava11可用于Fedora (当前版本),CentOS 7& 8,RHEL7& 8,Ubuntu16.04& 18.04,Debian9 ...举几个例子。

对于Oracle发行版,我可以在OracleJava12SE文档中查看jmap手册页面:

因此,在安装Oracle JDK发行版时,可以放心地假定该工具已经存在。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/31833693

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档