我使用Fiddler进行性能评估,并注意到一些HTTP调用始终需要大约1000毫秒。
这不是随机的;在场景中的3个呼叫中,它始终是相同的呼叫,但速度很慢,但这可能会在重新启动后发生变化。
我已经花了很多时间在我的代码中找到了罪魁祸首,但是在禁用Fiddler之后,问题立即消失了,然后请求需要80毫秒。
从截图中注意到第一次调用很慢,TCP连接到localhost需要1001ms,但我也在第二次调用而不是第一次调用时观察到此问题,在其他情况下也是如此。
我连接到Windows 10上的Apache Tomcat服务器。
我已禁用任何“调制解调器模拟”。目标服务器和Fiddler本身位于localhost。
我使用的是最新版本(版本4.6.2.2)。
有没有办法避免这种延迟?
Request Count: 1
Bytes Sent: 1 519 (headers:385; body:1 134)
Bytes Received: 5 090 (headers:518; body:4 572)
ACTUAL PERFORMANCE
--------------
ClientConnected: 09:44:00.885
ClientBeginRequest: 09:44:00.886
GotRequestHeaders: 09:44:00.886
ClientDoneRequest: 09:44:00.886
Determine Gateway: 0ms
DNS Lookup: 0ms
TCP/IP Connect: 1001ms <============
HTTPS Handshake: 0ms
ServerConnected: 09:44:01.888
FiddlerBeginRequest: 09:44:01.888
ServerGotRequest: 09:44:01.888
ServerBeginResponse: 09:44:01.964
GotResponseHeaders: 09:44:01.964
ServerDoneResponse: 09:44:01.964
ClientBeginResponse: 09:44:01.964
ClientDoneResponse: 09:44:01.964
Overall Elapsed: 0:00:01.078
RESPONSE BYTES (by Content-Type)
--------------
application/xml: 4 572
~headers~: 518
答案 0 :(得分:0)
在Eric Lawrence in his answer的帮助下,使用127.0.0.1而不是localhost解决了问题。
说实话,我不知道为什么这会解决问题,或者我可以通过某种方式改变我的配置来使localhost正常工作。如果我了解更多,我会发布更新。