【问题标题】:Improving WCF performance提高 WCF 性能
【发布时间】:2009-04-09 07:18:02
【问题描述】:

我能否知道提高 .Net WCF 服务性能的方法? 现在它很慢,有时会被堵塞并最终停止响应。

【问题讨论】:

    标签: wcf web-services soap


    【解决方案1】:

    您在服务类中使用了哪种 InstanceContextMode 和 ConcurrencyMode?​​p>

    如果是 PerCall 实例,您可能需要检查是否可以减少为每个调用创建服务器实例的开销。

    如果是单实例(单例)——你真的需要吗? :-) 尝试使用 PerCall。

    马克

    【讨论】:

      【解决方案2】:

      那么,您要发送什么样的数据,以及通过什么绑定?

      问题是请求的大小(带宽),还是请求的数量(延迟)。如果有延迟,那么只需发出更少但更大的请求;-p

      对于带宽:如果您通过 http 发送二进制数据,您可以启用 MTOM - 这将为您节省几个字节。您可以在服务器上启用压缩支持,但这不能保证。

      如果您使用.NET 到.NET,您可能需要考虑protobuf-net;这有用于交换格式化程序 (DataContractSerializer) 以使用谷歌的“协议缓冲区”二进制格式的 WCF 钩子,该格式非常小且快速。我可以根据要求就如何提供建议。

      除此之外:发送更少的数据;-p

      【讨论】:

        【解决方案3】:

        您使用的是什么绑定?如果您使用的是 HTTP,则可以使用 TCP 获得更好的性能。

        尽管瓶颈很可能在 WCF 管道中更高,并且可能在您的托管对象中。

        我们需要有关您的 WCF 设置的更多详细信息才能提供很大帮助。

        【讨论】:

          【解决方案4】:

          您描述的症状可能是由任何原因引起的。您需要使用 JetBrain 的 dotTrace 或 Automated QA 的 AQTime 等分析器来缩小范围。

          或者您可以通过检测您的代码(这是分析器为您执行的操作)以老式方式进行。在您的操作开始之前收集开始时间。完成后,从当前时间中减去开始时间以确定经过的时间,然后将其打印出来或记录下来或其他任何方式。围绕此操作调用的方法执行相同的操作。您将很快看到哪些方法花费的时间最长。然后,进入这些方法并做同样的事情,找出是什么让它们花这么长时间,等等。

          【讨论】:

            【解决方案5】:

            “提高我的 .Net WCF 服务的性能”——这是您所问的非常通用的术语,我们可以通过不同的方式来提高性能,同时您需要找到导致性能下降的方法,例如 WCF 方法中的数据库访问。

            请尝试了解 WCF 中的可用功能,例如 oneWay WCF 方法,它将帮助您找到提高性能的方法。

            谢谢 文卡特

            【讨论】:

              【解决方案6】:

              这是一篇包含来自真实生产系统的一些统计数据的文章,您可以使用这些数据来比较/基准测试您的性能。

              WCF Service Performance

              【讨论】:

                【解决方案7】:

                微软最近发布了一篇知识库文章:

                这些问题包括:
                应用程序崩溃
                挂起
                调用 WCF 服务时应用程序的一般性能。

                【讨论】:

                  猜你喜欢
                  • 1970-01-01
                  • 1970-01-01
                  • 2011-04-24
                  • 1970-01-01
                  • 1970-01-01
                  • 1970-01-01
                  • 1970-01-01
                  • 2013-02-12
                  相关资源
                  最近更新 更多