Я использую Visual Studio 2010 SP1, целевой фреймворк 2.0, целевая платформа: Любой процессор, тестирование под Windows 7 x64 SP1.
Я испытываю странное поведение производительности.
Без app.config или со следующим app.config моя программа работает медленно (секундомер показывает ~0.11 с)
<?xml version="1.0"?>
<configuration>
<startup >
<supportedRuntime version="v2.0.50727" />
</startup>
</configuration>
Следующий app.config заставляет мою программу работать в 5 раз быстрее (секундомер показывает ~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);
}
}
}
Я сижу часами и не могу понять, что здесь происходит. Есть идеи?