OpenJDK 9:将会移除 HPROF 和 jhat - 开源中国社区
Float_left Icon_close
OpenJDK 9:将会移除 HPROF 和 jhat
oschina 2015年12月21日

OpenJDK 9:将会移除 HPROF 和 jhat

oschina oschina 发布于2015年12月21日 收藏 11 评论 14

做APP,小程序就上开源众包。世界杯期间免费领2600元启动金。>>>  

OpenJDK正在从JDK中废弃HPROF agent 并移除“jhat”工具。这是OpenJDK 9的Java SE平台借助Jigsaw实现模块化的结果,为了准备模块化,起草了多项提议(JEP),并且其中有很多都已经接近完成了。

让我们近距离地了解一下这两个与模块化JDK相关的JEP,它们的目标就在于移除HPROF agent和“jhat”工具:

移除JVM Tool Interface HPROF Agent

HPROF是一个profiler agent,它使用JVM Tool Interface(JVMTI)来提供工具接口,并且用到了 Bytecode Instrumentation。HPROF agent能够将profiling信息写到文件中,这些信息包括基于allocation sites的堆使用情况、堆dump、CPU使用情况、争用监控等,它还可以将这些信息通过socket进行发送。HPROF无意成为生产型的工具,它能够被下文所述的各种其他可选方案所替代:

HPROF能够获取heap allocation profile、CPU使用的采样数据以及times profile,按照其最简单的形式分别如下面的命令所示:

java -agentlib:hprof=heap=sites <classname>

java -agentlib:hprof=cpu=samples <classname>

java -agentlib:hprof=cpu=times <classname>

相应的功能可以通过Java性能监控工具VisualVM来实现,这是一个可视化的工具,集成了多个命令行JDK工具和轻量级profiling功能。与HPROF不同,VisualVM能够用在生产以及开发环境中,并且提供了额外的特性,如生成线程(和堆)dump、查看heap dump、本地和远程的Java应用监控以及离线性能分析等等。

HPROF也能通过如下的命令生成heap dump:

java -agentlib:hprof=heap=dump <classname>

按照JEP 240,这个功能将会被JVM中相同的功能所取代,这是通过使用像“jcmd”和“jmap”这样的命令行工具做到的,如下所示:

jcmd GC.heap_dump filename=<filename>

或者

jmap [option] <pid>

where <option>:

-dump:<dump-options> to dump java heap in hprof binary format

            dump-options:

             live         dump only live objects; if not specified,

                          all objects in the heap are dumped.

             format=b     binary format

             file=<file>  dump heap to <file>

Example: jmap -dump:live,format=b,file=heap.bin <pid>

按照“jcmd”工具的文档,如果要创建堆(hprof)dump的话,“jcmd”是推荐使用的工具。

移除“jhat”工具

“jhat”是一个堆分析工具,它会解析Java heap dump并且能够在Web浏览器中查看解析过的heap dump。借助“jhat”,用户可以执行一些标准的查询或使用 OQL接口编写自定义的查询。

按照JEP 241, jhat是一个实验性的、不再支持的过时工具。尽管JEP并没有指定特定的替代工具,但是InfoQ还是再次为用户推荐 Java VisualVM ,用它来实现heap dump的创建、可视化和分析。VisualVM还允许用户执行自定义的查询或使用标准的查询。

本站文章除注明转载外,均为本站原创或编译。欢迎任何形式的转载,但请务必注明出处,尊重他人劳动共创开源社区。
转载请注明:文章转载自 开源中国社区 [http://www.oschina.net]
本文标题:OpenJDK 9:将会移除 HPROF 和 jhat
分享
评论(14)
最新评论
0
这几年一直用jdk7,明年全部上jdk8,不上的全部开除
0

引用来自“OSC首席酱油党”的评论

目前还在用JDK6,项目规模大了,不敢轻易升级jdk版本,一旦出现问题,后果无法承受
为什么会出现问题,还不是测试做的不好
0

引用来自“简单代码”的评论

都在害怕可能的风险,还有人在用5,为什么不做充分测试呢?新的jdk有新特性、稳定性、高性能,不兼容在老版本jdk上可能有发生,但从6之后,我基本没有碰到过问题。
问一下,5、6、7、8的性能差多少?哪里有这类的测试呢?
0
Java大法好
0

引用来自“今秋”的评论

发展太快,考虑下小的们能不能跟得上吧。。
两年一个版本,这也叫快?
0

引用来自“今秋”的评论

发展太快,考虑下小的们能不能跟得上吧。。
openjdk到oracle jdk还是需要一段时间的
0
JDK 里确实有很多工具的功能重复了,去掉也好
0
Hello World
0
都在害怕可能的风险,还有人在用5,为什么不做充分测试呢?新的jdk有新特性、稳定性、高性能,不兼容在老版本jdk上可能有发生,但从6之后,我基本没有碰到过问题。
0
目前还在用JDK6,项目规模大了,不敢轻易升级jdk版本,一旦出现问题,后果无法承受
0
好多东西没用上就被淘汰了,目前主要还在用jdk 7
0

引用来自“今秋”的评论

发展太快,考虑下小的们能不能跟得上吧。。
算不上太快吧,jdk的发展速度还算是稳健了
0
发展太快,考虑下小的们能不能跟得上吧。。
0
既然有替代工具,老的移除掉就没问题了
顶部