如果我理解正确,System.currentTimeMillis()会更快,System.nanoTime()会更准确。
如果我正在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()的准确性。
答案 0 :(得分:2)
根据您的操作系统,currentTimeMillis()
的分辨率最高可达15毫秒(Windows)。另一方面,nanoTime()
的分辨率在Linux / Mac上约为1微秒,其延迟在几十纳秒之内。因此,当您说nanoTime()
是"慢"时,请确保您了解该资格的实际规模。