现在我们只使用这样的东西
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 对这个问题的回答:
在线程应用程序中准确计时一行代码,C#
还有这篇文章:
http://lyon-smith.org/blogs/code-o-rama/archive/2007/07/17/timing-code-on-windows-with-the-rdtsc-instruction.aspx
似乎没有简单的方法可以做到这一点。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)