4
我們使用WCF(BasicHttpBinding)從我們的C#應用程序中調用約300ms的webservice。我們注意到,從SOAP UI發送它時,相同的SOAP調用只需要約30ms。Java與網絡HTTP客戶端性能
現在我們還通過基本的WebClient實現了訪問webservice的測試,以確保WCf的DeSer-part不是造成這種額外延遲的原因。當使用WebClient類時,通話也需要大約300ms。
關於爲什麼Java與C#相比,在這方面速度快10倍的任何想法?有沒有可能在.NET的一面進行某種調整?
private void Button_Click(object sender, RoutedEventArgs e)
{
executeTest(() =>
{
var resultObj = client.getNextSeqNr(new WcfClient()
{
domain = "?",
hostname = "?",
ipaddress = "?",
loginVersion = "?",
processId = "?",
program = "?",
userId = "?",
userIdPw = "?",
userName = "?"
}, "?", "?");
});
}
private void Button_Click_1(object sender, RoutedEventArgs e)
{
WebClient webClient = new WebClient();
executeTest(()=>
{
webClient.Proxy = null;
webClient.CachePolicy = new System.Net.Cache.RequestCachePolicy(System.Net.Cache.RequestCacheLevel.NoCacheNoStore);
webClient.Headers.Add("Content-Type", "application/xml");
webClient.Encoding = Encoding.UTF8;
var data = "<soapenv:Envelope xmlns:soapenv=\"http://schemas.xmlsoap.org/soap/envelope/\" xmlns:ser=\"SomeNamespace\">" +
" <soapenv:Header/>" +
" <soapenv:Body>" +
" <ser:getNextSeqNr>" +
" <!--Optional:-->" +
" <clientInfo>" +
" <!--Optional:-->" +
" <domain>?</domain>" +
" <!--Optional:-->" +
" <hostname>?</hostname>" +
" <!--Optional:-->" +
" <ipaddress>?</ipaddress>" +
" <!--Optional:-->" +
" <loginVersion>?</loginVersion>" +
" <!--Optional:-->" +
" <processId>?</processId>" +
" <!--Optional:-->" +
" <program>?</program>" +
" <!--Optional:-->" +
" <userId>*</userId>" +
" <!--Optional:-->" +
" <userIdPw>?</userIdPw>" +
" <!--Optional:-->" +
" <userName>?</userName>" +
" </clientInfo>" +
" <!--Optional:-->" +
" <name>?</name>" +
" <!--Optional:-->" +
" <schema>?</schema>" +
" </ser:getNextSeqNr>" +
" </soapenv:Body>" +
"</soapenv:Envelope>";
string result = webClient.UploadString("http://server:8080/service", "POST", data);
});
}
我在這裏錯過了什麼嗎?任何想法將是有益的... ;-)
親切的問候, 塞巴斯蒂安
在WCF下的相同程序中,隨後調用相同服務需要多長時間?檢查一次做一件事的時間長短並不是對性能的可靠測試 - 要多做很多次。 –
第一次WCF調用更慢,但後續調用WCF和普通WebClient調用的速度仍比對應的Java客戶端(甚至SoapUI)慢10倍左右。我確實在循環中運行測試以確保測量一般情況... –