2012-06-30 39 views
0

只是出於興趣,很高興知道我的計算程序運行了多長時間(例如,Project Euler解決方案)。要麼通過使用不同的解決方案來查看我能夠擠出多少毫秒,要麼看看需要多長時間來消除大數字。通常這樣的程序以System.out.println結尾,打印答案。我怎麼能在另一個println,其中說「該程序需要幾秒鐘」,或類似的東西(即每毫秒增加一些變量0.001,然後在程序完成時打印它)?在程序中放置一個計時器以表明它花了多長時間 - Java

+0

看到[這個答案](http://stackoverflow.com/a/4863701/1065197) –

+0

你至少試過開發者最好的朋友,谷歌? –

+0

[如何在不創建新日期的情況下在Java中獲取系統時間]的可能重複(http://stackoverflow.com/questions/4863658/how-to-get-system-time-in-java-without-creating-a - 新的日期) –

回答

1

使用System.currentTimeMillis()調用(粒度取決於操作系統,可能不完全精確),您可以輕鬆獲得總毫秒數。例如:

long start = System.currentTimeMillis(); 
// portion of code 
long stop = System.currentTimeMillis(); 

System.out.println("Time: " + (stop - start) + " ms"); 
1

你可以使用:

long start = System.nanoTime(); 
    // do something 
    long took = System.nanoTime() - start; 

documentation

返回最精確的可用系統定時器的當前值,以納秒爲單位。 此方法只能用於測量已用時間,並非與系統或掛鐘時間的任何其他概念相關的 。返回的值 表示自一些固定但任意時間 (可能在將來,因此值可能爲負)返回的納秒。這種方法 提供了納秒級精度,但不一定是納秒級 的準確度。沒有保證值的變化頻率。 跨度大於約 292年(263納秒)的連續調用之間的差異由於數值溢出而無法準確計算經過時間 。

相關問題