【发布时间】:2008-11-11 23:26:29
【问题描述】:
我听说过很多关于剖析的事情。这是怎么回事?据我了解,这是某种性能测量,但有人可以更清楚地阐述这一点,以便新手能够掌握这个想法。此外,我将 Eclipse IDE 用于我的 Java 程序。我可以使用 Eclipse IDE 分析我的程序吗?分析时要考虑哪些因素(我的意思是最佳实践)?
【问题讨论】:
我听说过很多关于剖析的事情。这是怎么回事?据我了解,这是某种性能测量,但有人可以更清楚地阐述这一点,以便新手能够掌握这个想法。此外,我将 Eclipse IDE 用于我的 Java 程序。我可以使用 Eclipse IDE 分析我的程序吗?分析时要考虑哪些因素(我的意思是最佳实践)?
【问题讨论】:
分析基本上显示给定代码行的执行频率以及在其中花费了多少时间(与其他行相比)。这样可以很容易地确定您的代码大部分时间花费的位置。
它还可以找到您的代码花费大量时间而不做任何事情的地方:这是cache miss 的典型标志,也是您应该活跃的地方。
通常,程序会在一个地方花费大量时间(例如,90%)。不幸的是,没有分析就不可能找到这个地方。猜测经常出错。因此,如果您在错误的地方进行优化,这将毫无帮助:如果在该行中花费的总时间仅为 10%,那么您的代码只会加快 10%(充其量!)。但是,如果您成功地移除了占用 90% 时间的调用,那么您的程序将快十倍。
简而言之,这就是分析。
Eclipse 提供内置分析功能,有人告诉我它们非常好,但由于我不了解它们,所以让其他人回答。
【讨论】:
Konrad 是对的,但分析也涵盖了程序的其他方面,例如内存消耗。
【讨论】:
YourKit 是一个出色的 Java 分析器,可以很好地与 Eclipse 集成。它绝对物有所值,通常被认为是可用的最好的 Java 分析器。
【讨论】:
根据我对使用 Eclipse 进行 Java 分析所做的少量研究,您可以使用 JProfiler。我从来没有真正比安装它并快速了解它。
【讨论】: