1

我需要测量 Java 应用程序的 DNS 查找时间。我的想法是测量 InetAddress.getByName("myName") 的执行时间。我不确定这个调用是否被操作系统缓存。有人可以告诉我吗?

有没有更好的方法来做到这一点?

4

2 回答 2

3

关于缓存,InetAddress的 javadoc说:

The InetAddress class has a cache to store successful as well as unsuccessful host name resolutions. 

因此,无论操作系统如何,Java 都会缓存结果。

继续阅读,您会看到可以指定修改默认缓存行为的 JVM 参数。

于 2012-07-04T11:39:36.430 回答
3

我不确定操作系统,但Java 有自己的 DNS 缓存,可以通过系统属性进行配置。请查看此链接以获取更多详细信息。

编辑:

您的用例保证禁用 DNS 缓存

于 2012-07-04T11:42:06.220 回答