Arr*_*rry 16 java performance metrics profiling jprofiler
我正在寻找一个Java代码分析器,我可以用它来分析我的应用程序(它是一个在后端运行的服务)生产(所以意味着低头,它不能减慢我的应用程序).主要是我想调用树分析,也就是说a()调用b()然后b()调用c(),然后a()b()和c()花了多少时间,包括和包含.
见过jvisualvm和jprofiler,但这不是我所期待的,因为我不能配合我的生产应用程序到他们,因为它会造成重大的性能问题.
此外,我确实通过了metrics(https://github.com/dropwizard/metrics),但它没有给我一个功能来分析调用树.
Callgrind(http://valgrind.org/docs/manual/cl-manual.html)类型库是我需要的,因为它提供了调用树分析功能和高级选项,如避免调用循环(递归).但是我不确定Callgrind是否可以用于生产,因为它会在程序终止时转储数据.
任何人都可以建议用于java的好的调用树分析器,可以在不影响性能的情况下用于生产吗?
kc2*_*001 13
与Flight Recorder一起查看Java Mission Control.从Oracle JDK 7 Update 40(7u40)发布开始,Java Mission Control与HotSpot JVM捆绑在一起,因此它具有高度集成性,并且声称对运行时性能影响很小.我刚开始看它,我确实看到了一些调用树功能.

cru*_*tex 10
一般情况下,您不会(或我不建议)为您的应用程序提供检测的分析器.仪表始终意味着无法控制的生产开销.
您可以使用的是采样分析器.采样分析器以可控间隔生成堆栈跟踪的快照.你没有得到的是呼叫计数,但是,在一些运行时之后,你会得到一个很好的概述,你有热点.由于您可以调整探查器的采样间隔,因此可以影响探测器的开销.
JDK附带了一个可用的采样分析器,请参阅java 7文档中的hprof页面.以前存在一些用于hprof cpu跟踪(而不是堆跟踪)的图形分析工具.现在他们走了.但是,您已经可以使用生成的文本文件.
我快速浏览了上面提到的Java Mission Control的内容.我认为它非常强大可以满足很多需求,在白皮书中他们说它只有2%的开销.然而,这并不完全是我个人需要或想要的.对于我的应用程序,最好始终启用"轻量级"分析.
| 归档时间: |
|
| 查看次数: |
23969 次 |
| 最近记录: |