此计时代码中额外错误时间背后的原因
Reason behind additional error time in this timing code
我最近一直在研究 java 中的一些性能示例并发现了这个片段:
long start = System.nanoTime();
// code to be timed goes here...
long finish = System.nanoTime();
long error = System.nanoTime() - finish;
long duration = finish - start - error;
现在我明白了什么代码在做什么,但不一定为什么error
时间也被减去?
这种事情我见过很多次了:
long start = System.nanoTime();
// code to be timed goes here...
long finish = System.nanoTime();
long duration = finish - start;
但之前没有这个附加错误时序的概念。
这样做是为了减少执行 long finish = System.nanoTime();
指令所需的时间。作者不希望停止秒表的行为计入正在测试的代码。
除非你真的在处理纳米级精度,否则这就太过分了,甚至可能无法真正说明作者的意图。
我最近一直在研究 java 中的一些性能示例并发现了这个片段:
long start = System.nanoTime();
// code to be timed goes here...
long finish = System.nanoTime();
long error = System.nanoTime() - finish;
long duration = finish - start - error;
现在我明白了什么代码在做什么,但不一定为什么error
时间也被减去?
这种事情我见过很多次了:
long start = System.nanoTime();
// code to be timed goes here...
long finish = System.nanoTime();
long duration = finish - start;
但之前没有这个附加错误时序的概念。
这样做是为了减少执行 long finish = System.nanoTime();
指令所需的时间。作者不希望停止秒表的行为计入正在测试的代码。
除非你真的在处理纳米级精度,否则这就太过分了,甚至可能无法真正说明作者的意图。