gpt4 book ai didi

c# - 如何测量 .NET 中多个并发线程的代码块(线程)执行时间

转载 作者:太空狗 更新时间:2023-10-29 21:48:16 26 4
gpt4 key购买 nike

现在我们就用这样的东西

        stopWatch.Start();            
try
{
method();
}
finally
{
stopWatch.Stop();
}

这对于同步方法工作得很好,但有些是异步执行的,所以当多个线程执行时时间是倾斜的。是否有与 System.Diagnostics.Stopwatch 等效的东西,它只会测量在当前线程中花费的时间?

我们希望在我们的内部测试版(alpha?)版本中收集更长时间的数据,并且全时在分析器下运行不是一个可行的选择。

编辑:澄清一下,我们只想测量执行 method() 所花费的时间,因此如果 Method1() 和 Method2() 同时启动并且 Method1 在 2 秒标记处完成,而 Method2 在 4 秒处完成第二个标记,我想要一些可以告诉我 Method1 执行了大约 1 秒而 Method2 执行了大约 3 秒的东西(假设在前 2 秒内它们平均共享(假定为单核)处理器。

最佳答案

嗯,来自 Jon Skeet 对这个问题的回答:

Timing a line of code accurately in a threaded application, C#

还有这篇文章:

http://lyon-smith.org/blogs/code-o-rama/archive/2007/07/17/timing-code-on-windows-with-the-rdtsc-instruction.aspx

似乎没有简单的方法可以做到这一点。

关于c# - 如何测量 .NET 中多个并发线程的代码块(线程)执行时间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/375068/

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