Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/performance/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
java评测:查看二进制hprof cpu采样转储_Java_Performance_Profiling_Profiler_Hprof - Fatal编程技术网

java评测:查看二进制hprof cpu采样转储

java评测:查看二进制hprof cpu采样转储,java,performance,profiling,profiler,hprof,Java,Performance,Profiling,Profiler,Hprof,是否有任何方法可以查看使用JRE内置hprof代理的hprof=cpu=samples,format=b参数装箱的javahprof

是否有任何方法可以查看使用JRE内置hprof代理的
hprof=cpu=samples,format=b
参数装箱的java
hprof
转储文件

以下工具不支持查看hprof cpu采样数据:

  • 视觉的
  • 你的装备
  • 杰克罗菲勒
  • 月食垫

一些谷歌搜索发现了两种工具,它们似乎可以分析由hprof
CPU=samples
选项生成的CPU分析数据(我没有尝试过任何一种):

  • PerfAnal:请参阅和,它似乎来自项目页面。不过,它看起来很旧,所以希望你能幸运地使用它

  • HP提供的一种工具,名为HPjmeter。的所有者提到成功地使用它来分析此类分析信息。该工具的用户手册说它支持代理输出的二进制格式


请记住,在所有情况下,hprof代理都是实验性的(讨论了它的不精确性),甚至在Java9中它都会被完全删除。如果可能的话,最好在运行时使用您提到的工具来分析应用程序。

JVM附带Visual VM。我想你会喜欢它的视觉特性。@duffymo visual VM不显示加载(外部创建)hprof的cpu样本信息。它只支持/显示hprof堆转储信息。我知道这两者。然而,HPjmeter似乎不再是免费的(好吧,这不是问题所要求的),正如您已经提到的,PerfAnal似乎非常古老(并且只有源代码可用)。我希望市场上有新东西(可能是免费的)。但无论如何,感谢您指出在Java9中删除hprof代理,这是我不知道的。顺便说一句,我不想使用hprof代理-我正在搜索一个可以显示由我自己的工具创建的hprof文件的工具。@MRalwasser如果您的工具的二进制格式与JVM代理生成的一致,分析器应该能够查看它们。了解hprof的原始开发人员打算如何处理CPU采样的二进制格式很有意思。目前似乎没有一个JDK工具能够以hprof格式生成等效的CPU采样转储,所以看起来这种二进制格式是实验性的,从未正式过。顺便说一句,我投票决定重新回答这个问题,以防Sun/Oracle开发人员能够奇迹般地回答这个问题:)