我一直在使用Windows.Web.Http.HttpClient进行API请求。我的HttpClient是一个单例。我使用Visual Studio中的Network Profiler分析了API调用的资源计时。在Timings拆分中,我看到Waiting(TTFB)部分花费的时间最多(大约275ms。有时甚至高达800ms)。
根据此doc,等待时间为
等待初始响应所花费的时间,也称为时间到 第一个字节。这一次捕获了往返于 服务器以及等待服务器交付所花费的时间 响应。
在不同平台的mac(NSUrlSession)或android上尝试相同的API调用时,在同一网络中的等待时间明显缩短。 我的问题是等待时间的延迟是否取决于HttpClient的实现?如果没有,我的NetworkAdapter代码是否需要更改?
答案 0 :(得分:-1)
TTFB是往返时间(RTT)和服务器响应时间(SRT)的函数,两者都基本上不在客户端操作系统的控制范围内。与基本的健全性检查一样,我建议使用HttpClient SDK Sample app的方案1测量TTFB。一种可能的解释是Windows设备与Mac / Android设备的网络设置不同(例如,它们是否都通过WiFi连接?如果是,它们是否都使用相同的频段(2.4 GHz或5 GHz) ?)。但是,最可能的解释是HttpClient发送的HTTP请求不同于NSUrlSession发送的HTTP请求(例如,就标题而言),从而导致服务器端处理时间不同。
TTFB非常依赖于站点。这是我将VS2017 Network Profiler与HttpClient SDK示例应用程序一起使用的最终结果:
Bing.com:
Amazon.com:
Microsoft.com: