用于 CPU 消耗的 Java 分析工具
Posted
技术标签:
【中文标题】用于 CPU 消耗的 Java 分析工具【英文标题】:Java Profiling Tool for CPU consumption 【发布时间】:2010-11-09 04:37:12 【问题描述】:我使用过 JProfiler、JProbe、AppSight、YourKit 来找出哪些代码正在消耗 CPU。 但是 YourKit 看起来比其他的要好。
还有什么更好的吗?
【问题讨论】:
YourKit 是我试过的最好的。 这里是similar SO thread,可能会有所帮助。 仅适用于 JProfiler。它在分析我们的 Apache + GWT 应用程序方面做得非常好,我们甚至从不费心尝试其他东西。我也对你问题的答案感兴趣。谢谢! 【参考方案1】:Sun 6 JDK 中有 jvisualvm。它“更好”是因为它免费且易于使用,非常简单,但具有能够附加到已经运行的程序的杀手级功能。它是 NetBeans 分析器的独立版本,也是免费的。
如果“更好”包括价格,这些都很难被击败。
【讨论】:
感谢您的回复。我很久以前(可能是 1.5 年)就使用过 NetBeans 分析器。它适用于内存分析,但不适用于 cpu 计时。它现在也适用于计时吗?【参考方案2】:除非您定义“更好”的含义,否则您不能问哪个更好。基本上它是课程的马。对于哪个是最好的工具以及出于什么原因,每个人都有自己的偏好。
有我见过的主要工具,但取决于你喜欢哪个。
【讨论】:
感谢您的回复。对我来说更好的是易于使用和设置以及准确的 cpu 分析。 Yourkit 有 2 种分析模式:采样(高级)和跟踪(深度 CPU 计时)。它在采样模式下可以创造奇迹,你可以从中找出大部分消耗 CPU 的代码。但是,要进行更详细的分析,您必须在跟踪模式下运行。即使在此模式下使用过滤器运行后,时间也与实际时间相去甚远。我试过JProbe,即使在高级模式下也不准确。 我刚刚检查了 VisualVM,因为我不知道它可以附加到进程而不需要重新启动该进程。聪明的。也很高兴它带有Java。但至于详细的功能,我不知道。我只使用分析工具进行基本分析,通常是寻找内存泄漏。以上是关于用于 CPU 消耗的 Java 分析工具的主要内容,如果未能解决你的问题,请参考以下文章