0

我想计算一个程序完整执行需要多长时间。可以用它来计时,System.nanoTime();但什么是最好的测量单位最适合分析程序?

4

4 回答 4

2

这完全取决于您的程序的性质,即您在日志记录中需要什么分辨率。作为一般规则,我认为毫秒就足够了。

于 2012-09-27T19:11:22.503 回答
0

System.nanoTime()旧版本的 JVM 不支持。这些的精度也可能取决于操作系统。这篇文章很有趣,并解释了更多关于这类事情

我个人会使用System.currentTimeMillis()它,因为它仍然非常准确,并且受旧 VM 的支持。如果您想要更高的精度,那么我认为这System.nanoTime()是您能得到的最好的。

这篇 SO文章可能对你也很有趣

于 2012-09-27T19:13:59.650 回答
0

毫秒比纳秒更常见,因为并非每个系统都具有这种保真度。

long t0 = System.currentTimeMillis();
// Time passes...
long t1 = System.currentTimeMillis();
long elapsedMillis = t1 - t0;
于 2012-09-27T19:11:01.873 回答
0

有什么问题:

long t1 = System.nanoTime();
// do something
long t2 = System.nanoTime();
System.out.println(t2 - t1); 

您也可以使用System.currentTimeMillis()(这可能更合适),这实际上取决于您尝试测量的过程。

于 2012-09-27T19:09:11.423 回答