我们正在使用Microsoft的System.Web.Services.WebService类编写完整的.NET / WPF / C#应用程序。我们看到了奇怪的表现行为。我不是班上较低级别的工作专家,所以如果这是微不足道的话,请道歉。
问题是第一个webmethod调用非常慢,我不确定为什么或如何解决它。 性能测试代码的确如下:
ServiceSoapClient Svr = new ServiceSoapClient("ServiceSoap", url);
DateTime start = DateTime.Now;
bool connect = Svr.attemptConnection(true);
end = DateTime.Now;
Debug.WriteLine("server call: " + (end - start));
start = DateTime.Now;
connect = Svr.attemptConnection(true);
end = DateTime.Now;
Debug.WriteLine("server call 2: " + (end - start));
start = DateTime.Now;
connect = Svr.attemptConnection(true);
end = DateTime.Now;
Debug.WriteLine("server call 3: " + (end - start));
在这个性能示例中,第一个“服务器调用”大约需要3秒钟! “服务器调用2”,“服务器调用2”,此后的任何数字大约需要0.1秒。 所有“Svr.attemptConnection(true)”都是采用传递布尔值并按原样返回。
我仍在对此进行研究,但我们将非常感谢任何帮助。为什么第一次调用这么慢,我们怎么能改变它呢?
THX