gpt4 book ai didi

java - 在 Junit 中使用 Java 分析器

转载 作者:搜寻专家 更新时间:2023-11-01 03:35:28 24 4
gpt4 key购买 nike

是否有可以作为 JUnit 测试的一部分集成的 Java 分析器。

例如,我想要一个条件,如果测试中的某个方法使用了超过 X% 的 CPU,则测试应该失败/通过。

或者如果某个方法运行了超过 X 分钟,它应该会失败。

我在这里查看了 YourKit、JVM 监视器和其他推荐的工具,以及运行 java -Xrunhprof:cpu=samples,file=myprogram.hprof

但所有这些都不提供用作测试的一部分。

我也可以从测试中调用探查器,将结果(自动)保存到 csv/txt/任何其他文件,并编写一些代码来提取信息。

如果有开源/免费工具会更好

最佳答案

JProfiler 有一个可用于此目的的 API。在 JProfiler 安装中,查看 api/samples/platform 目录 并查看 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();

免责声明:我公司开发了 JProfiler。

关于java - 在 Junit 中使用 Java 分析器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33218408/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com