java - System.CurrentTimeMillis 是否足够准确以 ping 服务器?

标签 java time ping

如果我理解正确的话,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/

相关文章:

java - Android Runtime.getRuntime().exec 命令导致应用程序在获取输出之前卡住

java - 如何将 web3j 库加载到 sbt 项目?

java - 在 Scala 中创建一个 Json 数组

python - 为什么 Python 在语言环境模块中将德语和西类牙语(以及其他?)时间格式字符串存储为 %T?

azure - 如何在 Azure 上启用 Ping(ICMP)

java - 即使存在 jxl import 和 API,标签也无法被识别

c++ - C++中的matlab tic toc等价物

ruby - UTC 时间重置为 2000-01-01( ruby )。如何防止时间重置?

java - 如何检查特定端口上IP地址的连通性?

Java:线程不会同时 ping