gpt4 book ai didi

.net - 通过 serviceProxy 进行的第一个 WCF 调用的延迟是什么?

转载 作者:行者123 更新时间:2023-12-02 15:10:49 25 4
gpt4 key购买 nike

有很多类似的问题,但它们都涉及服务器端缓慢 - 这都是关于客户端问题。

第一次调用需要 900 毫秒。第二次调用需要 20 毫秒。

我缩小了第一次调用 serviceProxy.Method() 时的缓慢程度。 Fiddler 报告第一个调用的实际线路时间为 16 毫秒。由于第二次调用速度要快得多,我被迫得出结论,问题是由在第一次方法调用发生时触发的某些 WCF 客户端实例化代码引起的。

事实:

  • 通过 wsHttpBinding 与服务器建立连接
  • 这些对象由 Marc Gravell 使用 Protobufs.NET 库进行编码
  • 这里的问题确实解决了像我这样的客户端问题,建议在后台线程上进行第一次调用,以解决缓慢的问题。然而,这只是解决症状,而不是根本原因。

有什么想法为什么第一篇文章会出现速度减慢的情况吗?

最佳答案

启动时常见的服务器缓慢是 IIS 应用程序池旋转,但在您的问题中您指出,即使第一个请求为 900 毫秒,但根据 fiddler,服务器请求只花费了 16 毫秒。如果这是真的,则表明客户端发生了某些事情。

一种可能性是,某些序列化对象的客户端应用程序在运行时为这些数据类型生成并编译序列化代码,这可能会导致启动性能缓慢

http://msdn.microsoft.com/en-us/library/aa751883.aspx

http://msdn.microsoft.com/en-us/library/ms733901.aspx

我不熟悉 protobuff,但编译序列化代码是一种权衡,这会使第一次调用明显变慢,但会使后续调用更快。

不确定这是否是您的初始成本,但有可能。

关于.net - 通过 serviceProxy 进行的第一个 WCF 调用的延迟是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7604963/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com