只是出于兴趣,很高兴知道我的计算程序运行了多长时间(例如 Project Euler 解决方案)。要么看看我可以通过使用不同的解决方案挤出多少毫秒的时间,要么看看处理大数字需要多长时间。通常这样的程序以System.out.println
, 打印答案结束。我怎样才能输入另一个println
,上面写着“程序花费了几秒钟”,或者类似的东西(即每毫秒将某个变量增加 0.001,然后在程序完成时打印它)?
问问题
328 次
3 回答
1
您可以使用调用轻松获得总毫秒数System.currentTimeMillis()
(粒度取决于操作系统,可能不完全精确)。例子:
long start = System.currentTimeMillis();
// portion of code
long stop = System.currentTimeMillis();
System.out.println("Time: " + (stop - start) + " ms");
于 2012-06-30T16:13:56.950 回答
1
看看这个例子: http ://www.roseindia.net/java/java-get-example/get-execution-time.shtml 这是另一个完整但不同的实现: http ://www.mkyong.com/java /how-do-calculate-elapsed-execute-time-in-java/
于 2012-06-30T16:14:31.287 回答
1
你可以使用:
long start = System.nanoTime();
// do something
long took = System.nanoTime() - start;
从文档:
返回最精确的可用系统计时器的当前值,以纳秒为单位。此方法只能用于测量经过的时间,与系统或挂钟时间的任何其他概念无关。返回的值表示自某个固定但任意时间以来的纳秒(可能在将来,因此值可能为负数)。此方法提供纳秒精度,但不一定提供纳秒精度。不保证值的变化频率。由于数值溢出,超过大约 292 年(263 纳秒)的连续调用的差异将无法准确计算经过的时间。
于 2012-06-30T16:16:57.037 回答