Estoy usando Visual Studio 2010 SP1, el marco de destino es 2.0, destino de la plataforma: cualquier CPU, probando con Windows 7 x64 SP1.Comportamiento de rendimiento extraño
Tengo un comportamiento de rendimiento extraño.
Sin un app.config, o con la siguiente app.config, que hace que mi programa se ejecute lentamente (espectáculos cronómetro ~ 0.11 s)
<?xml version="1.0"?>
<configuration>
<startup >
<supportedRuntime version="v2.0.50727" />
</startup>
</configuration>
La siguiente app.config hace que mis tiempos de ejecución de programas x5 más rápido (cronógrafo muestra ~ 0.02 s)
<?xml version="1.0"?>
<configuration>
<startup >
<supportedRuntime version="v4.0.30319" sku=".NETFramework,Version=v4.0" />
</startup>
</configuration>
Este es el código de programa de pruebas:
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);
}
}
}
estoy sentado durante horas y no puede entender lo que está sucediendo aquí. ¿Tienes alguna idea?
La propia clase System.String fue cambiado en .NET 4. Con un montón de trabajo sobre los bits de NLS en el CLR. No se puede esperar razonablemente resultados similares, solo esperanza. –