我在本地托管了一个WCF服务,我编写了一个测试方法来继续为此服务构建Web请求并跟踪每次调用的时间花费,然后获得大致的时间。但似乎这个数字不正确:
100次通话的AVE时间:150毫秒, 单次呼叫很多次:30毫秒。
如果我在连续调用Web服务时调试,我可以获得正确的响应时间,该调用时我停止的请求调用大约30ms,但是一旦我删除了断点并按F5,其余的调用再次开始使用超过100毫秒...
那是因为我本地机器中的内存吗?或其他原因造成这种情况?
这是我的代码:
HttpWebRequest request = (HttpWebRequest)WebRequest.Create(requestUrl);
request.Method = method;
request.ContentType = "application/json;charset=utf-8";
request.Timeout = 600000;
request.Headers.Add("controldata", controldata);
//add body if needed
if (method == "POST" || method == "PUT")
{
if (requestBody != null)
{
byte[] data = Encoding.UTF8.GetBytes(requestBody);
Stream dataStream = request.GetRequestStream();
dataStream.Write(data, 0, data.Length);
dataStream.Close();
}
else //allow post/put request send without request body
{
request.ContentLength = 0;
}
}
//get response
Stopwatch watch = Stopwatch.StartNew();
HttpWebResponse response = request.GetResponse() as HttpWebResponse;
watch.Stop();
timeSpend = watch.ElapsedMilliseconds;
然后在这部分外面我有一个循环,可以多次调用这个部分..