私は WCF を使用して Java ベースの Web サービスを呼び出し、常に 1.4 秒または 1.5 秒の応答時間を取得しました。SoapUI でまったく同じ SOAP リクエストを使用して同じ Web サービスを呼び出し、常に 0.9 秒から 1 秒の応答時間を取得しました。
両方の要求がローカル コンピューターから開始され、両方の要求が同じターゲットにヒットします。
シリアライズとデシリアライズに 0.5 秒かかるとは信じがたいですが、これ以外にパフォーマンスに影響を与えるものはありますか?
更新 1 - 含まれているサンプル コード
Stopwatch sw = new Stopwatch();
//Trust all certificates, non-production uses self-signed certificate
System.Net.ServicePointManager.ServerCertificateValidationCallback = ((sender, certificate, chain, sslPolicyErrors) => true);
MyServiceClient.MyService.Spml2ServicePortTypeClient client = new MyServiceClient.MyService.Spml2ServicePortTypeClient();
client.ClientCredentials.UserName.UserName = "username";
client.ClientCredentials.UserName.Password = "password";
for (int i = 0; i < 5; i++)
{
MyServiceClient.MyService.SuggestUserIDRequestType webRequest = new MyServiceClient.MyService.SuggestUserIDRequestType();
webRequest.requestID = "MyId";
webRequest.givenName = "Hardy";
webRequest.sn = "Wang";
webRequest.uid = "some value";
sw.Start();
MyServiceClient.MyService.SuggestUserIDResponseType response = client.suggestUserID(webRequest);
sw.Stop();
Console.WriteLine("Elapsed time {0} ms.", sw.ElapsedMilliseconds);
sw.Reset();
}