我正在使用Visual Studio 2010 SP1,目標框架爲2.0,平臺目標:任何CPU,在Windows 7 x64 SP1下測試。奇怪的性能行爲
我遇到奇怪的表現行爲。
沒有一個app.config,或者與下面的app.config,它使我的程序運行速度很慢(秒錶顯示〜0.11 S)
<?xml version="1.0"?>
<configuration>
<startup >
<supportedRuntime version="v2.0.50727" />
</startup>
</configuration>
下的app.config讓我的程序運行X5倍的速度(秒錶示出〜0.02秒)
<?xml version="1.0"?>
<configuration>
<startup >
<supportedRuntime version="v4.0.30319" sku=".NETFramework,Version=v4.0" />
</startup>
</configuration>
這是測試的程序代碼:
using System;
using System.Collections.Generic;
using System.Text;
using System.Diagnostics;
class Program
{
static void Main(string[] args)
{
Stopwatch sw = new Stopwatch();
while (true)
{
sw.Reset();
sw.Start();
for (int i = 0; i < 1000000; i++)
{
"blablabla".IndexOf("ngrhotbegmhroes", StringComparison.OrdinalIgnoreCase);
}
Console.WriteLine(sw.Elapsed);
}
}
}
我坐了幾個小時,無法弄清楚這裏發生了什麼。 你有什麼想法嗎?
System.String類本身運行在.NET 4改爲用大量的工作,對在CLR的NLS位。你不能合理地期待類似的結果,只有希望。 –