Napotkali sytuację, w której prosty .net fibonniacci jest wolniejszy na określonym zestawie serwerów i jedyną rzeczą, która jest oczywiście inna, jest procesor. AMD Opteron 6276 - 11 sek Intel Xeon XPU E7 - 4850 - 7 sek. Kod spowolniony w procesorze AMD Opteron CPU
Code jest spełnione dla x86 i przy użyciu .NET Framework 4.0. -Clock prędkości między nimi jest podobny i w rzeczywistości testy PassMark dają wyniki highesr dla AMD. - Próbowano tego na innych serwerach AMD w farmie, a czasy są wolniejsze. -Nawet moje lokalne maszyny I7 szybciej uruchamiają kod.
kod 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;
}
}
Wszelkie pomysły na to, co może być grane?
Poza sprawdzaniem zarządzania energią, myślę, że Iain ma rację, jest to raczej pytanie WSTĘPNE. – ITHedgeHog
Te same domyślne ustawienia koligacji procesora na obu komputerach? I ... dlaczego 32-bitowe? –
@MathiasR.Jessen - jest to interesujące, ponieważ ustawiłem powinowactwo procesora do pojedynczego procesora i otrzymałem 7 sekund teraz – Rubans