【发布时间】:2012-03-12 13:38:07
【问题描述】:
我在 C# 中测试了一些案例,以考虑性能方面的一些要点, 我在测试时遇到了一个奇怪的案例
for (int i = 0; i < 30; i++)
{
DateTime d = DateTime.Now;
print();
result.Add ((DateTime.Now - d));
}
foreach(TimeSpan t in result)
Console.WriteLine(t.ToString());
虽然打印功能很简单:
public static void print ()
{
for (int i = 0; i < 10000; i++)
{
Console.WriteLine( string.Format("{0}", i));
}
}
我对结果感到震惊,前三个循环大约需要 5 秒,而之后大约需要 0.5 秒。 这是一些:
00:00:05.6212696
00:00:05.6072002
00:00:05.5837965
00:00:01.9451673
00:00:00.5526335
00:00:00.5540554
00:00:00.5676418
00:00:00.5372442
00:00:00.5772550
我只是想知道为什么它在第三次迭代后改善了近 10 倍?
【问题讨论】:
-
每次运行都会出现这种情况吗?
-
这个问题可以重现吗?当我测试时,我得到了 0.81 到 1.14 秒之间的结果。
-
是的 @GazTheDestroyer 先生和 Salaman A 先生,就像 Tigran 所说的,它可能因 PC 而异
-
您测量的是
Console.WriteLine的性能。这取决于控制台是否可见。
标签: c# performance time