Windows Phone HttpClient GetAsync 性能

Windows Phone HttpClient GetAsync performance

我正在 Windows Phone 平台上出于教育目的(MVVM 模式)使用 twitch REST API。我在使用 HttpClient 时注意到纯粹的性能:

  1. 我得到了 10 个元素的集合
  2. 将其传递给 CheckCannelStreamStatus

我删除了代码,因为它是原型的草稿。

就像下面的答案一样,问题出在 HttpClient.GetAsync 中,导致执行时间约为 671 毫秒。

这与HttpClient的"performance"无关。这样做的原因是您要去服务器 10 次以取回一些信息。每个请求大约需要 768 毫秒,考虑到一些延迟,这听起来很合理。 HttpClient 对延迟和服务器响应时间无能为力。

为了验证这种情况,我建议你弹出 Fiddler 或类似的工具来确保响应时间是罪魁祸首。您还可以将 client.GetAsyncresponse.Content.ReadAsAsync<TwitchStream>() 包装在单独的秒表中,并验证序列化不是此处的根本原因。

为了减少获取所有所需信息所需的时间,我建议您考虑并行执行 HTTP 请求。 HttpClient 旨在为多个调用和跨多个线程重复使用。因此,重用单个实例并并行执行多个请求,使用类似 Task.WhenAll 或类似的东西,将使它的性能更好。