HttpClient.PostAsync第一次缓慢

时间:2016-09-26 17:02:01

标签: c# .net uwp

经过一些基准测试后,我意识到每次启动应用程序时,第一个请求将比下一个请求花费更多时间。第一个为500毫秒,下一个平均为120毫秒。

我在HttpClient中设置了Cookie,并且UseProxy也设置为false。 HttpClient也被初始化并创建一个虚拟请求,但没有等待它尝试克服这个问题。

任何有新想法的人?我正在构建一个UWP应用程序。

1 个答案:

答案 0 :(得分:1)

这可能有很多原因。应用程序池正在预热,正在构建路由,DI容器可能正在注册对象图,正在进行缓存,正在生成和缓存执行计划等等。这对于课程和预期来说都是标准的。

正如spender的评论中所提到的,还有其他问题,例如JIT开销和DNS查找。

您应始终假设需要应用程序预热时间。最初的做法是在首次运行时预热应用程序,以确保快速响应应用程序的使用者。你不能避免这种预热成本,也不应该试图这样做。而是构建您的部署,以便您能够在用户点击它之前预热应用程序,例如正确的负载平衡和服务器轮换。