.net – 什么WCF绑定最高效?

我必须在我的WCF服务中获得最大吞吐量性能.在我的一个测试中,下面的服务使用NetTcpBinding每分钟只获得50k数据项.像NetMsmqBinding这样的断开连接会改善这种性能吗?

服务和客户端使用WCF并在同一台机器上运行.

[ServiceBehavior(InstanceContextMode = InstanceContextMode.Single,
    ConcurrencyMode = ConcurrencyMode.Multiple)]
public class Storage : IStorage
{
    protected List<int> _data = new List<int>();

    public void Insert(int[] data)
    {
        lock (_data)
        {
            _data.AddRange(data);
        }
    }

    public int[] Get()
    {
        lock (_data)
        {
            return _data.ToArray();
        }
    }
}

上面的代码是实际代码的简化版本.

Msmq可能比TcpBinding慢.

如果你在同一台机器上运行,你肯定应该使用NetNamedPipeBinding(IPC),这是最快的绑定.

您还应该检查序列化数据的方式.协议缓冲区序列化比默认WCF二进制序列化快得多(并且更精简)(但需要稍微调整一下).

本站公众号
   欢迎关注本站公众号,获取更多程序园信息
开发小院