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 \u0026lt;classname\u0026gt;\\java -agentlib:hprof=cpu=samples \u0026lt;classname\u0026gt;\\java -agentlib:hprof=cpu=times \u0026lt;classname\u0026gt;

\\

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

\\

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

\\

java -agentlib:hprof=heap=dump \u0026lt;classname\u0026gt;

\\

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

\\

jcmd GC.heap_dump filename=\u0026lt;filename\u0026gt;

\\

或者

\\

jmap [option] \u0026lt;pid\u0026gt;\\where \u0026lt;option\u0026gt;:\\-dump:\u0026lt;dump-options\u0026gt; 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=\u0026lt;file\u0026gt;  dump heap to \u0026lt;file\u0026gt;\\Example: jmap -dump:live,format=b,file=heap.bin \u0026lt;pid\u0026gt;

\\

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

\\

移除“jhat”工具

\\

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

\\

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

\\

在未来的报道中,我们将会继续讨论上述的使用场景。

\\

查看英文原文:OpenJDK 9: Life Without HPROF and jhat

OpenJDK 9:将会移除HPROF和jhat相关推荐

  1. 红帽高级总监谈OpenJDK的未来:Java的未来从未如此光明

    随着Java 11的发布,Java最终完成了到OpenJDK一等项目的过渡.使用专有OracleJDK二进制文件的日子已经结束了.对Java开放性和免费的关注自然而然将Oracle以外的公司的贡献带入 ...

  2. jdk 9和jdk8_JDK 9是某些功能的终结

    jdk 9和jdk8 几天前宣布JDK 9是Feature Complete! 进行切割的许多"功能"是附加功能,但有些是移除功能. 这篇文章介绍了一些从OpenJDK和/或Ora ...

  3. JDK 9是某些功能的终结

    几天前宣布JDK 9是Feature Complete! 进行剪切的许多"功能"都是添加项,但有些是删除项. 这篇文章介绍了从OpenJDK和/或Oracle的JDK Java 9 ...

  4. 【面试题001】最强java八股文

    一.基础篇 网络基础 TCP三次握手 1.OSI与TCP/IP 模型 2.常见网络服务分层 3.TCP与UDP区别及场景 4.TCP滑动窗口,拥塞控制 5.TCP粘包原因和解决方法 6.TCP.UDP ...

  5. java性能监视_Java 9和应用程序性能监视的激动人心之处

    java性能监视 通过AppDynamics解决应用程序问题的速度提高了10倍–以最小的开销在代码级深度监视生产应用程序. 开始免费试用! 在当今的现代计算时代,软件创新的不断增强使我们更接近软件革命 ...

  6. Java 9和应用程序性能监视的激动人心之处

    通过AppDynamics解决应用程序问题的速度提高了10倍–以最小的开销在代码级深度监视生产应用程序. 开始免费试用! 在当今的现代计算时代,软件创新的不断增强使我们更接近软件革命的时代. 也许在遥 ...

  7. visualvm远程监控jvm_大型企业JVM实战:优化及面试热点分析

    本次课程的笔记非常多,而且内容已经整理了好几个小时了,接着下来内容也会更多,也是大型企业JVM性能调优实战的最后一节,希望对你有帮助! 04:JVM性能监控与故障处理工具 大型企业JVM性能调优实战之 ...

  8. 马士兵—JVM—内存溢出—2.arthas阿里线上Java诊断工具

    参考文档 阿里官方文档 https://arthas.aliyun.com/doc/en/quick-start.html 使用方法 1. 生成dump文件. heapdump /root/1.hpr ...

  9. Java源码详解五:ArrayList源码分析--openjdk java 11源码

    文章目录 注释 类的继承与实现 构造函数 add操作 扩容函数 remove函数 subList函数 总结 本系列是Java详解,专栏地址:Java源码分析 ArrayList 官方文档:ArrayL ...

最新文章

  1. Swift3.0语言教程使用占位符格式创建和初始化字符串
  2. HDU5977 Garden of Eden 【FMT】【树形DP】
  3. Java文件路径(getResource)
  4. 弹性布局----Flex
  5. 华为云TechWave全球技术峰会,看云基础设施全新打开方式
  6. MySQL Left Join,Right Join
  7. 用得上的商学课-老路
  8. Layui treeTable相关
  9. OpenCV实战案例——车道线识别
  10. matlab 仿真短路故障设置,基于MatlabSimulink的电力系统故障仿真与
  11. Advanced Installer Architect创作工具
  12. Object Detection in 20 Years: A Survey 20年间的目标检测:综述
  13. 远程控制PLC实际案例——西门子SIMATIC S7-1200
  14. keydown、input、keyup
  15. firewall-cmd --permanent --get-zone-of-interface=ens33显示no zone
  16. [程序人生] --- 永远的87版--电视连续剧《红楼梦》音乐欣赏
  17. 探索ESP8285(2)搭建Windows版MQTT服务器
  18. 页面上.woff加载不出来解决办法
  19. PHPChina中的Yii2与Discuz会员打通(单点登录)
  20. 群晖服务器删除的文件都在回收站吗,电脑快速清空回收站之后,文件要如何恢复?...

热门文章

  1. 在服务器上处理gis文件,云服务器处理gis
  2. 神策数据:游戏企业如何做产品 A/B 测试?三大案例一次搞懂
  3. 驱动利器:数据驱动下的产品决策(上)
  4. Perhaps you are running on a JRE rather than a JDK?
  5. 设计模式 分类和原则
  6. 静态自动检查代码缺陷与隐患
  7. Quartz总结(一):Quartz集成Spring的2个方法
  8. 文本挖掘之文本相似度判定
  9. How to change in the Cocos2d-x project from landscape to portrait both in iOS and Android
  10. CPU和GPU的区别