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