none
WCF几种绑定的性能问题 RRS feed

  • 问题

  •         看书上说几种绑定里面netNamedPipeBinding和netTcpBinding性能是最好的。wsHttpBinding性能比较差。

            可我测试了一下,我就是同一个服务,几种不同的绑定,然后用客户端程序去访问不同绑定的同一个服务10000次,

            发现还是basicHttpBinding做完10000次的时间最短,然后是netTcpBinding,netNamedPipeBinding,wsHttpBinding。

            用的就是默认的绑定属性。为什么跟书上说的不一样呢?是不是我哪里弄的不对???

            <endpoint address="http://127.0.0.1:10001/s1" binding="wsHttpBinding"
                      contract="WCFTest.IService" />
            <endpoint address="http://127.0.0.1:10001/s2" binding="basicHttpBinding"
                      contract="WCFTest.IService" />
            <endpoint address="net.tcp://127.0.0.1:10003/s3" binding="netTcpBinding"
                      contract="WCFTest.IService" />
            <endpoint address="net.pipe://127.0.0.1" binding="netNamedPipeBinding"
                      contract="WCFTest.IService" />


    环境就是一台笔记本电脑,WIN 7系统的。32位。Intel(R) Corer(TM) i5 CPU 2.27GHz.

    代码很简单,输入一个长度是1024的字符串,然后直接返回这个字符串。

    测试的代码就是每种绑定一个for循环调用服务10000次。

    2011年5月29日 13:58

答案

  • 嗯,都在一台笔记本上的。A,B都试过,结果都差不多的。。。。。没有本质区别。

    在测试tcp和http时,请使用两台机器。
    • 已标记为答案 pig_lululu 2011年5月31日 7:47
    2011年5月30日 6:20

全部回复

  • 你能先把你测试的代码和环境描述清楚吗?
    2011年5月30日 1:23
  • 一台笔记本电脑,WIN 7系统的。32位。Intel(R) Corer(TM) i5 CPU 2.27GHz.

    代码很简单,输入一个长度是1024的字符串,然后直接返回这个字符串。

    2011年5月30日 2:50
  • 你的客户端和服务端都在一台机器上吗?

    你测试的代码是循环的连接-访问-关闭逻辑,还是连接一次,循环访问?下面A还是B?

    A;

    Proxy client =new Proxy();

    while(n<10000)

    {

       client.InvokeMethod();

    }

    client.Close();

    B:

    while(n<10000)

    {

    Proxy client =new Proxy();

    client.InvokeMethod();

    client.Close();

    }

     

    2011年5月30日 5:33
  • 嗯,都在一台笔记本上的。A,B都试过,结果都差不多的。。。。。没有本质区别。
    2011年5月30日 5:54
  • 嗯,都在一台笔记本上的。A,B都试过,结果都差不多的。。。。。没有本质区别。

    在测试tcp和http时,请使用两台机器。
    • 已标记为答案 pig_lululu 2011年5月31日 7:47
    2011年5月30日 6:20
  • 哦,到时候试试。。。。。谢谢。
    2011年5月31日 7:47