出于兴趣,我很高兴知道我的计算程序运行了多长时间(例如Project Euler解决方案)。要么通过使用不同的解决方案来查看我可以挤出多少毫秒,要么看看需要多长时间来处理大数字。通常这样的程序以System.out.println
结束,打印答案。我如何输入另一个println
,其中说“程序需要几秒钟”,或类似的东西(即每毫秒增加一些变量0.001,然后在程序完成后打印)?
答案 0 :(得分:1)
您可以使用System.currentTimeMillis()
调用轻松获得总毫秒数(粒度取决于操作系统,可能不完全准确)。例如:
long start = System.currentTimeMillis();
// portion of code
long stop = System.currentTimeMillis();
System.out.println("Time: " + (stop - start) + " ms");
答案 1 :(得分: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/
答案 2 :(得分:1)
您可以使用:
long start = System.nanoTime();
// do something
long took = System.nanoTime() - start;
返回最精确的可用系统计时器的当前值,以纳秒为单位。 此方法只能用于测量经过的时间而不是 与系统或挂钟时间的任何其他概念有关。价值 返回表示自固定但任意时间以来的纳秒 (也许在未来,所以价值观可能是负面的)。这种方法 提供纳秒级精度,但不一定是纳秒级 准确性。不保证值的变化频率。 连续调用的差异大于约 292年(263纳秒)将无法准确计算经过的时间 由于数字溢出。