有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

对特定主机的Java第一个http请求进行基准测试的速度要慢得多

我正在编写一个针对web应用程序的基准测试工具。我面临的问题是,对服务器的第一个请求总是比后续请求花费更长的时间。 我在ApacheHTTP客户端3中遇到过这个问题。x、 四,。x和Google http client。ApacheHTTP客户端4。x显示了最大的区别(第一个请求比后续请求花费的时间长约七倍。对于谷歌和3.x来说,这大约是后续请求的三倍)

我的工具必须能够通过线程对同步请求进行基准测试。我不能使用一个HttpClient实例并从所有线程调用它,因为这会引发并发异常。因此,我必须在每个线程中使用一个单独的实例,它只执行一个请求。这极大地改变了整体结果

我不理解这种行为。我不认为这是由于服务器上的缓存机制,因为a)考虑中的webapp没有使用任何缓存(据我所知),并且b)在首次请求www.hostxy时,这种效果也是可见的。com和www.hostxy。com/my/webapp

我使用系统。在分别调用client.execute(get)get.execute()之前和之后的nanoTime()

有人知道这种行为是从哪里来的吗?这些HttpClient本身是否进行缓存?如果有任何提示,我将不胜感激


共 (0) 个答案