我必須在我的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