如何使用hprof

时间:2017-08-25 16:05:46

标签: java maven hprof

我试图弄清楚为什么单位测试需要几秒钟而不是几毫秒。这是一个重要的问题,因为超过约300个测试类,这导致20分钟。我希望在我的maven单元测试中使用性能分析器(如java HPROF)。然后我会自己分析hprof输出。

1 个答案:

答案 0 :(得分:2)

我将以下argline配置添加到我的surefire插件块

<configuration>
    <forkMode>never</forkMode>
    <argLine>
        -agentlib:hprof=cpu=samples,lineno=y,depth=3,file=hprof.samples.txt
    </argLine>
    ...
<configuration>

您不能分叉JVM。所有测试都必须重复使用相同的jvm才能工作。

生成一个hprof文件(参见:https://docs.oracle.com/javase/7/docs/technotes/samples/hprof.html)。这给了你关于代码的哪一部分减慢速度的提示。在我的例子中,它是reuseFork = never和类加载的组合。