如果我理解正確,System.currentTimeMillis()更快,而System.nanoTime()更準確。System.CurrentTimeMillis是否足夠精確以ping服務器?
如果我正在ping一臺服務器,在最壞的情況下,我希望採取......讓我們走極端......一分鐘,是System.currentTimeMillis()在1-2毫秒內仍然準確嗎?或者我應該去System.nanoTime()?
我ping服務器,像這樣:
long startTime = System.nanoTime();
getResponseFromServer();
long endTime = System.nanoTime();
return endTime - startTime;
正如你所看到的,我目前使用的System.nanoTime(),但我不確定我是否應該使用System.currentTimeMillis()。
System.currentTimeMillis vs System.nanoTime有關於這個問題的很多很好的信息,但沒有關於System.currentTimeMillis()的準確性的具體信息。
您正在執行阻塞操作,該操作可能需要1分鐘,並且擔心nanoTime()的性能,該操作的運行時間僅爲微秒(即其運行速度比ping快數百萬倍)。爲什麼? – 2015-04-03 14:08:47
我的目標是準確地獲取ping。我不在乎封鎖。 (也許因爲我不知道更好的...) – Evorlor 2015-04-03 14:12:50
那麼既然你知道nanoTime更準確,你爲什麼關心它的性能呢?只需使用它:它會足夠快。 – 2015-04-03 14:18:25