找到最常执行的java源代码部分

时间:2015-07-10 08:52:16

标签: java profiling

我正在使用netbeans IDE 7.4。我想找到大部分运行时间所花费的代码行。我听说过一些关于可用于线程监控的分析器......等等。 但我不知道(确切地说!)如何查找我的程序中经常使用的代码部分我想找出JVM为此提供的机制和设备 - 不仅使用第三方软件包(分析器等等)

2 个答案:

答案 0 :(得分:1)

您可以使用visualVM配置CPU,并且您将找到哪些方法是CPU消耗。你必须使过滤器(正则表达式)专注于你的类。

答案 1 :(得分:0)

假设代码的L行(如果删除)会将其线程中的整个挂钟时间减少50%。然后,如果您在随机时间转储所有正在运行的线程的堆栈,找到您的线程,并忽略所有不是您的代码的级别,则有50%的可能性会在剩余的行中看到行L. / p>

因此,如果你这样做10次,你会看到L行大约5次,给予或接受。

事实上,如果您在多个堆栈样本中看到它,如果您可以删除或绕过它,您的代码的任何行都将为您节省一小部分时间,保证。 更重要的是,这种方法(虽然粗略)会找到分析者可以找到的任何加速,而且他们可以找到更多。

可以找到它背后的数学here.

示例:工作线程花费80%的时间进行I / O并在解析XML的过程中分配内存以构建数据结构。您可以看到XML来自同一线程中不同代码段中的数据结构。这是一个很重要的代码 - 如果没有样本指出,你就不会知道这一点。在看到两次之前,您只需要拍摄两到三个样本。只需绕过XML - 5x加速。