我有WCF服務。我用basichttp綁定和tcp綁定做了一些測試。WCF主機和性能
在控制檯客戶端我創建了數以百計的線程,並擊中了與TCP和HTTP服務綁定。原來TCP比http快兩倍。
然後我做了在IIS上運行,並擊中服務的Web客戶端。 原來,http比TCP更快。
這是怎麼發生的?是不是TCP應該比basichttp更快? COde就像下面的一樣。類似。
stopwatch start here
Thread[] ts = new Thread[100];
for(int i= 0; i< ts.lenght;i++){
ts[i] = new Thread(foo); // replace with bar for the second test.
ts[i].start();
}
for(int i 0;i< ts.lenght;i++){
ts[i].join();
}
stopwatch stop here.
public static void foo(){
MyServiceClient myclient = new MyServiceClient("netTcpBinding");
myclient.GetResult(1);
}
public static void bar(){
MyServiceClient myclient = new MyServiceClient("basicHttpBinding");
myclient.GetResult(1);
}
這取決於您的測試代碼。 – 2011-03-07 14:31:24
您的第二個測試是否與服務在同一臺機器上運行? – jonathanpeppers 2011-03-07 14:39:47
他們是相同的代碼。我只是用兩種配置調用一種服務方法。綁定只有不同。 – DarthVader 2011-03-07 14:40:28