使用 intellij 和 jprofiler 分析 junit 测试

Profiling junit tests with intellij and jprofiler

我正在尝试分析一个 junit 测试 - 我只关心热点和调用树 - 我想看看测试在哪里花费时间。我通过右键单击 intellij idea 并说 "profile ..." The test 运行s in less than a second 来 运行ning 测试,然后完成 - 即使我可以足够快地到达那里单击调用树并单击开始录制(还没有找到任何立即录制的方法) - 在它完成时我还没有设法打开的任何东西都不可用,说的是“没有收到数据”因为分析的 JVM 已终止。

我如何右键单击并 运行 测试,让它捕获 所有 呼叫历史记录和时间,以便我可以在测试后浏览所有内容完成了吗? (或者有 alternative/better 的方法吗?)

在分析设置中,在 "Miscellaneous" 选项卡上,有一个名为 "Keep VM alive" 的设置。如果您 select 该复选框,只要 JProfiler GUI 连接到它,VM 就不会终止。


更新2017-11-28

从JProfiler 10开始,这个设置不再在profiling设置中,而是在启动对话框中。此外,现在还有一个选项可以在 JVM 退出时自动保存快照。这样做的好处是不会阻塞 IDE.

中的测试运行程序