Kor*_*tak 6 .net c# performance increment
这是自解释代码(执行十亿次操作):
int k = 0;
Stopwatch sw = new Stopwatch();
sw.Start();
for (int a = 0; a < 1000; a++)
for (int b = 0; b < 1000; b++)
for (int c = 0; c < 1000; c++)
k++;
sw.Stop();
Console.WriteLine(sw.ElapsedMilliseconds);
sw = new Stopwatch();
sw.Start();
for (int a = 0; a < 1000; a++)
for (int b = 0; b < 1000; b++)
for (int c = 0; c < 1000; c++)
; // NO-OP
sw.Stop();
Console.WriteLine(sw.ElapsedMilliseconds);
Run Code Online (Sandbox Code Playgroud)
结果是(至少在我的电脑上)某处(以毫秒为单位)
2168
2564
Run Code Online (Sandbox Code Playgroud)
第二个总是大约半秒钟.
增加一个变量十亿次的运行时间比执行一次无操作的次数有多长?
编辑:这只发生在DEBUG上.释放正确,第一个持续时间更长,至少在我的计算机上.正如评论中所指出的,即使在RELEASE构建中,也有人遇到过这个问题.但是在DEBUG上会发生什么影响呢?
我跑了3次,输出是:
3786
3252
3800
3256
3840
3255
因此,如果您根据调试模式下收集的统计数据做出决定,请不要这样做。
调试模式将大量数据附加到代码中,以在调试过程中帮助调试器。