Si è verificata una situazione in cui un semplice codice .net fibonniacci è più lento su un particolare set di server e l'unica cosa che è ovviamente diversa è la CPU. processore AMD Opteron 6276 - 11 secs Intel Xeon E7 XPU - 4850 - 7 secondi.net codice più lento su AMD Opteron CPU
Codice sia rispettato per x86 e l'utilizzo di .NET Framework 4.0. -La velocità di clock tra entrambi è simile e in effetti i benchmark PassMark danno punteggi alti per AMD. -Hai provato su altri server AMD nella farm e i tempi sono più lenti. -Anche le mie macchine locali I7 eseguono il codice più velocemente.
codice Fibonnacci:
class Program
{
static void Main(string[] args)
{
const int ITERATIONS = 10000;
const int FIBONACCI = 100000;
var watch = new Stopwatch();
watch.Start();
DoFibonnacci(ITERATIONS, FIBONACCI);
watch.Stop();
Console.WriteLine("Total fibonacci time: {0}ms", watch.ElapsedMilliseconds);
Console.ReadLine();
}
private static void DoFibonnacci(int ITERATIONS, int FIBONACCI)
{
for (int i = 0; i < ITERATIONS; i++)
{
Fibonacci(FIBONACCI);
}
}
private static int Fibonacci(int x)
{
var previousValue = -1;
var currentResult = 1;
for (var i = 0; i <= x; ++i)
{
var sum = currentResult + previousValue;
previousValue = currentResult;
currentResult = sum;
}
return currentResult;
}
}
Tutte le idee su quello che forse sta succedendo?
Oltre a controllare la gestione del risparmio di energia, penso che Iain sia corretto, questa è più una domanda SO. – ITHedgeHog
Le stesse impostazioni predefinite di affinità della CPU su entrambe le macchine? E ... perché 32-bit? –
@ MathiasR.Jessen: è interessante perché ho impostato l'affinità della CPU con una singola CPU e ottengo 7 secondi ora. – Rubans