• WCF 第四章 绑定 比较各种绑定的性能和可扩展性


    开发人员需要知道绑定的性能和可扩展性特点。当你在与现实中的应用程序打交道时,性能和可扩展性对服务层次的协议和用户体验很重要。用户会对性能表现差的应用抱怨。应用通常不扩展意味着商业对象的需求没有被满足。
          我们已经对WCF中的四个绑定做了简单的性能比较。测试就是一个简单的返回一个256字符串的操作。列表4.23显示了用来在每个绑定间比较性能的服务。
    列表4.23 性能测试服务
       public class PerformanceTestService : IPerformanceTestService
        {
            private static string String256;
    
            static PerformanceTestService()
            {
                String256 = "".PadRight(256, 'x');
            }
            public string Get256Bytes()
            {
                return String256;
            }
        }
    
          服务在四个不同的绑定上暴露出来: netNamedPipeBinding, netTcpBinding, wsHttpBinding和basicHttpBinding.一个测试客户端依次调用Get256Bytes操作50,000次来比较绑定间的不同。然后我们测量平均使用时间,每秒多少次操作和CPU时间。所有的测试都在一个运行着服务端和客户端的单一工作环境中进行。这样以便于我们可以比较所有绑定的性能。图片4.3显示了每个绑定的平均反应时间。你可以使用反馈时间管理来帮助检查用户体验。
         图片4.4显示了每个绑定每秒的平均操作数量。这个测量在吞吐量上有影响。在测试客户端仅有一个实例用来测试。如果使用多个客户端,那么就会实现额外的吞吐量。每秒有多少次操作是我们用来确定可扩展性的依据。
          可扩展性也应该考虑每次操作所使用的硬件资源。图片4.5尝试通过显示每个操作的消耗来比较可扩展性。MCycles是一种基于对每个操作使用的CPU处理能力的测量方式。为了这个测试目的,我们使用一台Dell 4700, 奔腾4 3.4GHZ处理器的PC,等同于3400MCycles.注意对ws2007HttpBinding,wsHttpBinding和basicHttpBinding绑定的测量相对netTcpBinding或者netNamedPipeBinding绑定有很高的消耗。这是因为需要经常性的交互。
          WCF开发组已经发布了一个关于WCF性能的白皮书(http://msdn2.microsoft.com/en-us/library/bb310550.aspx ).这个白皮书探讨了更多安全设置,诸如事务,消息和混合模式,也对先前的技术比如.NET Remoting,Web Service Enhancements,ASP.NET Web Services和Enterprice Services进行了深入探讨。


    作者:DanielWise
    出处:http://www.cnblogs.com/danielWise/
    本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。

  • 相关阅读:
    03 Python之变量以及常量介绍
    看女程序员是如何处理男友出轨,网友回复更精彩
    四面美团,收割 offer
    MySQL 优化实战记录
    龙岗一个月350的出租房,我搬出来了
    程序员工作 996 生病 ICU ?
    真的有人在偷听我们讲话么?
    一次非常有趣的 SQL 优化经历
    如何阅读Java源码?
    从 0 开始手写一个 Mybatis 框架,三步搞定!
  • 原文地址:https://www.cnblogs.com/danielWise/p/1887764.html
Copyright © 2020-2023  润新知