Странное поведение производительности

Я использую 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);
        }
    }
}

Я сижу часами и не могу понять, что здесь происходит. Есть идеи?

7
задан DxCK 25 September 2011 в 19:43
поделиться