我必须在我的WCF服务中获得最大吞吐量性能。在我的一个测试中,使用NetTcpBinding,以下服务每分钟只能获得50k个数据项。像NetMsmqBinding这样的断开连接可以提高性能吗?什么WCF绑定是最高性能的?
服务和客户端使用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();
}
}
}
上面的代码是实际代码的简化版本。
有关如何选择WCF绑定的流程图,请参阅http://stackoverflow.com/questions/1613586/c-wcf-inter-process-communication/1613601#1613601。它并没有直接解决绩效问题,但其他人看到这个问题可能会有帮助。 – 2009-12-02 21:59:19