有哪些适用于 Java 的端到端 CPU 分析器?
我正在寻找的东西的快速列表:
- 离线分析 - 程序执行期间无需用户交互或 GUI。将配置文件数据转储到文件中,然后需要使用 GUI 进行查看很好,我只是不想在作业运行时照看它
- 端到端记录 - Profiler 应该能够在输入 J2SE 应用程序的主要调用后立即开始记录。它应该在 JVM 退出之前立即停止记录。
- 调用图生成 - 分析后,最好将数据转换为可视调用图。
谷歌有一个很好的 C/C++ 分析器 - http://google-perftools.googlecode.com/svn/trunk/doc/cpuprofile.html
如果存在与此等效的 Java,那么它正是我正在寻找的。
我没有将 HProf 包括在我的预期分析器列表中,因为与我在使用准确的 CPU 调用分析时看到的其他商业分析器相比,它的性能很差(通常通过字节码注入完成,这很慢,但 HProf 至少出现比其他分析器慢一个数量级,并且当单个采样配置文件运行需要 1-2 小时时,等待同一运行超过一天是不可接受的)