Utilizzo Visual Studio 2010 SP1, Target framework è 2.0, Target della piattaforma: Qualsiasi CPU, test in Windows 7 x64 SP1.Strano comportamento delle prestazioni
Sto sperimentando un comportamento strano delle prestazioni.
Senza un app.config, o con il seguente app.config, rende il mio programma di corsa lenta (spettacoli cronometro ~ 0.11 s)
<?xml version="1.0"?>
<configuration>
<startup >
<supportedRuntime version="v2.0.50727" />
</startup>
</configuration>
Il seguente app.config rende i miei tempi di esecuzione del programma x5 più veloce (cronometro mostra ~ 0,02 s)
<?xml version="1.0"?>
<configuration>
<startup >
<supportedRuntime version="v4.0.30319" sku=".NETFramework,Version=v4.0" />
</startup>
</configuration>
Questo è il codice programma di test:
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);
}
}
}
sono seduto per ore e non riesco a capire cosa sta succedendo qui. Hai qualche idea?
La classe System.String si cambiò in .NET 4. Con abbondanza di lavoro sui bit NLS del CLR. Non puoi ragionevolmente aspettarti risultati simili, solo speranza. –