Mas*_*era 5 c# performance loops while-loop
我有一个while
循环,它只是一个方法调用.我在循环的外部有一个计时器和另一个计时器,它会逐渐增加方法调用在循环内部的时间.外部时间约为17秒,内部计时器的总时间为40毫秒.循环执行50,000次.以下是代码示例:
long InnerTime = 0;
long OutterTime = 0;
Stopw1.Start();
int count = 1;
while (count <= TestCollection.Count) {
Stopw2.Start();
Medthod1();
Stopw2.Stop();
InnerTime = InnerTime + Stopw2.ElapsedMilliseconds;
Stopw2.Reset();
count++;
}
Stopw1.Stop();
OutterTime = Stopw1.ElapsedMilliseconds;
Stopw1.Reset();
Run Code Online (Sandbox Code Playgroud)
任何帮助将非常感激.马西莫
你正在比较苹果和橘子.您的外部计时器测量所花费的总时间.内部计时器测量调用所用的整数毫秒数Method1
.
该ElapsedMilliseconds财产"表示经过时间四舍五入到最接近的整数毫秒的价值." 因此,您将向下舍入到最近的毫秒大约50,000次.
如果您的调用Method1
平均小于1毫秒,那么大部分时间,`ElapsedMilliseconds'属性将返回0,您的内部计数将远远少于实际时间.事实上,你的方法平均需要大约0.3毫秒,所以你很幸运,甚至超过1毫秒40次.
使用Elapsed.TotalMilliseconds
或ElapsedTicks
属性而不是ElapsedMilliseconds
.一毫秒相当于10,000个刻度.