我有一个非常具体的问题,我需要回答一个非常具体的性能测试。我将简化代码,使其更容易理解。
我做了很多计算(几千万),所有这些都是在本身不太长的循环中完成的,我需要总计算时间。然而,所有的计算都不是一个接一个地直接完成的,并且一些额外的代码“介于”每个循环之间。
我需要的是所有循环的总时间(包括声明和初始化 i、递增它以及与示例中的 100 进行比较)。为了测量我Stopwatch
在每个循环之前直接开始并在循环之后直接停止它的时间。但这两个动作是否需要一些可能相关的时间?
例子:
Stopwatch sw = new Stopwatch();
sw.Start();
//how long does it now take until for loop is reached?
for(int i = 0; i < 100; i++)
{
//some calculations
}
//how much time does it take to stop sw?
sw.Stop();
当然,如果所有循环都直接一个接一个地完成并不重要,我可以从第一个循环的开头开始并在最后一个循环的结尾停止,但这在这里是不可能的。
我知道这个问题非常具体,但我希望有人可以在这里帮助我,因为来自大约 5000 万个循环的重要时间可能会在某种程度上影响我的结果。