如果我理解正确的话,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() 的准确性.
最佳答案
根据您的操作系统,currentTimeMillis()
的分辨率可能高达 15 毫秒 (Windows)。另一方面,nanoTime()
在 Linux/Mac 上的分辨率约为一微秒,其延迟为数十纳秒。因此,当您说 nanoTime()
“慢”时,请确保您了解该资格的实际规模。
关于java - System.CurrentTimeMillis 是否足够准确以 ping 服务器?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29433673/