Qua*_*ico 5 java profiler junit profiling
是否有可以作为 JUnit 测试的一部分集成的 Java 分析器。
例如,我想要一个条件,如果测试中的某个方法使用了超过 X% 的 CPU,则测试应该失败/通过。
或者,如果某个方法运行了超过 X 分钟,它应该会失败。
我在这里查看了 YourKit、JVM 监视器和其他建议的工具,以及运行 java -Xrunhprof:cpu=samples,file=myprogram.hprof
但所有这些都不能用作测试的一部分。
我也可以从测试中调用分析器,将结果(自动)保存到 csv/txt/任何其他文件,并编写一些代码来提取信息。
如果存在开源/免费工具会更好
JProfiler 有一个可用于此目的的 API。在JProfiler安装中,查看api/samples/platform directory并签出src-profiler/TestProfiler.java
作为粗略的轮廓,代码可能如下所示:
Connection connection = ConnectionFactory.getLocalConnection();
connection.recordCpuData(true);
// TODO execute unit test
connection.recordCpuData(false);
CpuHotspots cpuHotspots = connection.getCpuHotspots(null, Aggregation.METHOD,
ThreadStatus.RUNNING, true);
List<ProfilingValue> hotspots = cpuHotspots.getHotspots();
Collections.sort(hotspots);
// TODO analyze hot spots
connection.close();
Run Code Online (Sandbox Code Playgroud)
免责声明:我的公司开发 JProfiler。
| 归档时间: |
|
| 查看次数: |
2423 次 |
| 最近记录: |