gpt4 book ai didi

java - 测量JAVA中一段代码占用的CPU时间

转载 作者:行者123 更新时间:2023-11-29 09:04:27 25 4
gpt4 key购买 nike

我目前正在尝试用 Java 测量我的部分代码的实际 CPU 消耗时间。我读到要获得 CPU 时间,您必须使用

cpuTime = ManagementFactory.getThreadMXBean().getCurrentThreadCpuTime();

但事实上,当我尝试在那段代码中测量它时,当耗时等于零时会抛出错误......(在我看来,纳秒精度是不可能的). while 循环可以很大也可以很小(最少 10 条指令)。

long startTime = ManagementFactory.getThreadMXBean()
.getCurrentThreadCpuTime();
// reset with seed solution for each neighborRule and
// each pivoting rule
t.setCurrentBestSolution(seedSolution);
while (t.chooseNextImprovingNeighborSolution(pivotingRule,
neighborRule));
long endTime = ManagementFactory.getThreadMXBean()
.getCurrentThreadCpuTime();
if (endTime - startTime == 0) {
System.err.println(pivotingRule + ":" + neighborRule);
System.err.println("END TIME:" + endTime);
System.err.println("START TIME:" + startTime);
}

有什么想法吗?我没有正确使用 CPUThread 部分吗?我应该使用外部 Java 基准测试程序吗?

提前致谢

最佳答案

Should I use an external java benchmarker ?

是的,请做。 Jprofiler在其他有用的指标中测量实际耗时。

关于java - 测量JAVA中一段代码占用的CPU时间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15816327/

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