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


    开发人员需要知道绑定的性能和可扩展性特点。当你在与现实中的应用程序打交道时,性能和可扩展性对服务层次的协议和用户体验很重要。用户会对性能表现差的应用抱怨。应用通常不扩展意味着商业对象的需求没有被满足。
          我们已经对WCF中的四个绑定做了简单的性能比较。测试就是一个简单的返回一个256字符串的操作。列表4.23显示了用来在每个绑定间比较性能的服务。
    列表4.23 性能测试服务
    01public class PerformanceTestService : IPerformanceTestService
    02 {
    03     private static string String256;
    04 
    05     static PerformanceTestService()
    06     {
    07         String256 = "".PadRight(256, 'x');
    08     }
    09     public string Get256Bytes()
    10     {
    11         return String256;
    12     }
    13 }
          服务在四个不同的绑定上暴露出来: 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进行了深入探讨。


    =========

    转载自

     

  • 相关阅读:
    15回文相关问题
    14海量日志提取出现次数最多的IP
    13概率问题
    12胜者树和败者树

    pysnmp程序
    python 多线程 生产者消费者
    python多线程
    pysnmp使用
    PyYAML使用
  • 原文地址:https://www.cnblogs.com/llbofchina/p/2093015.html
Copyright © 2020-2023  润新知