gpt4 book ai didi

.net - Visual Studio 分析异步方法,包括实际等待时间

转载 作者:行者123 更新时间:2023-12-04 18:08:01 25 4
gpt4 key购买 nike

我们正在尝试分析一些大量使用异步/等待的 WCF Web 服务的性能。

我发现对于 Visual Studio 的 2012 检测分析模式,等待其他异步方法所花费的时间没有累积到其包含的持续时间中。从技术上讲,如果线程实际上不再卡在方法执行中,我想这是有道理的。但这实际上意味着很难深入了解缓慢的实际方法。

例如下面的示例,演示主方法 TestConcurrencyProfiling() 在分析器看来非常快,而实际上却陷入等待所有子任务的泥潭,据报道这些子任务本身速度很快但陷入等待。

我确定应该有一些我没有意识到的方法来捕捉这些方法的真正开始结束时间?

  public async Task<string> TestConcurrencyProfiling()
{
var numberTasks = new List<Task<int>>();
var rnd = new Random();
var counter = 0;

while (counter < 5)
{
numberTasks.Add(this.DelayRandomNumber(rnd));
counter++;
}

await Task.WhenAll(numberTasks);

string result = string.Empty;
foreach (var task in numberTasks)
{
result += task.Result.ToString() + ";";
}

return result;
}

private async Task<int> DelayRandomNumber(Random rnd)
{
var delay = rnd.Next(1, 4) * 1000;
await Task.Delay(delay);
return delay;
}

最佳答案

据我目前所见,只有 Red Gate 的 ANTS 配置文件支持这种类型的“挂钟”计时。

http://documentation.red-gate.com/display/APP8/Async+in+the+call+tree

关于.net - Visual Studio 分析异步方法,包括实际等待时间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21910401/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com