我想计算一个程序在整个程序中执行多长时间。可以用System.nanoTime();
计时,但最好的衡量单位最好分析程序吗?
答案 0 :(得分:2)
完全取决于程序的性质,了解日志记录所需的分辨率。作为一般规则,我认为毫秒就足够了。
答案 1 :(得分:0)
错误:
long t1 = System.nanoTime();
// do something
long t2 = System.nanoTime();
System.out.println(t2 - t1);
您也可以使用System.currentTimeMillis()
(这可能更合适),这实际上取决于您尝试衡量的过程。
答案 2 :(得分:0)
毫秒是比纳秒更常见的,因为并非每个系统都具有这种保真度。
long t0 = System.currentTimeMillis();
// Time passes...
long t1 = System.currentTimeMillis();
long elapsedMillis = t1 - t0;
答案 3 :(得分:0)
System.nanoTime()
。这些的精确度也可能取决于操作系统。 This article非常有趣,并且更多地解释了这种事情
我个人会使用System.currentTimeMillis()
,因为它仍然非常准确,并且受旧VM支持。如果你想要更高的精度,那么我认为System.nanoTime()
是你能得到的最好的。
This SO
帖子对您也很有意思