我正在使用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位。你不能合理地期待类似的结果,只有希望。 –