你如何 运行 使用 hprof 进行 maven 单元测试
How do you run maven unit tests with hprof
我想弄清楚为什么单元测试需要 运行 秒而不是毫秒。这是一个重大问题,因为超过 ~300 次测试 类,这会在 20 分钟内产生结果。我希望在我的 Maven 单元测试中使用性能分析器(如 java HPROF)。然后我会自己分析 hprof 输出。
我将以下 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 和 class loading.
的组合
我想弄清楚为什么单元测试需要 运行 秒而不是毫秒。这是一个重大问题,因为超过 ~300 次测试 类,这会在 20 分钟内产生结果。我希望在我的 Maven 单元测试中使用性能分析器(如 java HPROF)。然后我会自己分析 hprof 输出。
我将以下 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 和 class loading.
的组合