我们正在努力微调我们的生产应用程序。在一次登录下,一切都很好,很快。在250至750次同时点击的负载下,虽然事情显着减慢。我把秒表计时器放在可疑的电话上,但它们的执行速度非常快。所以我开始怀疑我们是否有线程,积压等类型的延迟。所以我添加了一个时间和超时指标。正如您在下面看到的11秒和9000毫秒11秒在线路上等待进入异步方法。所以我一直在寻找有关如何记录网络跃点和/或线程池等待时间等的帮助/信息......或者您认为可能值得调查的任何其他内容。
从原始方法剪切:
Debug.WriteLine("REPOBASE_Enter HttpAsync:::Endpoint Base is: {0} and uri is: {1}", baseAddress.AbsoluteUri, uri);
Stopwatch httpAsync = new Stopwatch();
httpAsync.Start();
Debug.WriteLine("REPOBASE_Enter HttpAsync Timeout: {0}", DateTime.Now.ToLongTimeString());
HttpResponseMessage response = await HttpClient.GetAsync(uri);
httpAsync.Stop();
Debug.WriteLine("REPOBASE_Exit HttpAsync elapsed:{0}", httpAsync.Elapsed);
上面的剪辑将在输出中产生:
第345行:REPOBASE_Enter HttpAsync :::端点基数为:http://localhost:57874/,uri为:api / accounts / 10553697
第346行:REPOBASE_Enter HttpAsync超时:上午9:18:35
第350行:REPOBASE_Exit HttpAsync已过:00:00:11.9159835
在HttpClient调用的基本服务中:
public HttpResponseMessage GetById(long id)
{
Debug.WriteLine("REPOBASE_Enter HttpAsync Timein: {0}", DateTime.Now.ToLongTimeString());
Debug.WriteLine("BASE_Enter GetById");
Stopwatch baseGetById = new Stopwatch();
baseGetById.Start();
.....
基础服务为输出产生这个:
第110行:REPOBASE_Enter HttpAsync Timein:上午9:18:46:
第111行:BASE_输入GetById
第112行:BASE_退出默认GetById Elapsed:00:00:00.0015406