我需要獲取Java中函數的執行時間。我知道我可以使用的兩種方法: currentTimeMillis();
和nanoTime();
但是我知道currentTimeMillis();
更準確,如果我需要掛鐘時間(也就是說,就好像我從掛鐘那樣測量執行花了多少時間不是處理時間)。如何使用currentTimeMillis()方法獲得小部分的執行時間
但currentTimeMillis();
不能給我小分數。例如,如果執行時間小於1毫秒,則返回0.即使該時間小於1,即0.05毫秒,我也需要時間。這是一個簡單的例子,當該方法返回0
long startTime=System.currentTimeMillis();
for(int x=0; x<10;x++)
{
System.out.println("-");
}
long execTime=System.currentTimeMillis() - startTime;
即使它返回時,它返回其作爲30或40。但是,我需要更精確的數目,也就是說,30.00012。此外,方法返回類型是long
,但我將其更改爲double
,因爲我想要浮點數,這是否有任何傷害?你能告訴我通過我可以用來衡量在小部分數量的我的Java方法執行掛鐘時間(例如,不8.0,但8.287335)
你有沒有想過使用探查器? –
「但我把它改成了'double',因爲我想要浮點數,這有什麼害處嗎?」如果返回的毫秒或納秒數大於'2^53',則會產生四捨五入效應,但大多數情況下,由於定時器返回整數值,因此它毫無意義。 –