Kann mir jemand mal auf die Sprünge helfen.
Vor einigen Jahren schrieb ich ein kleines Programm zur Pi-Annäherung ungefähr so, wie es der nachfolgende Ausschnitt zeigt:
- Code: Alles auswählen
var
i : LongWord;
x, n : Real;
QueryLos, QueryHalt : Int64;
//irgendwas ...
n:=1;
x:=0;
QueryLos := GetTickCount64;
for i:=1 to 500000000 do
begin
x:=x+(1/n);
if n<0 then n:=n-2;
if n>0 then n:=n+2;
n:=(-1)*n;
end;
QueryHalt := GetTickCount64;
Dauer:= IntToStr(QueryHalt – QueryLos);
end;
Nur so interessehalber führte ich das Programm auf zwei recht verschiedenen Rechnern durch:
System 1: Netbook / Atom-Prozessor N450 / 1,66 GHz / 2 GB RAM
System 2: Desktop / Intel i5-2320 / 3 GHz / 8 GB RAM
Die Laufzeiten waren doch recht unterschiedlich, bei System 1 etwa 42 Sekunden, bei System 2 nur knapp 4 Sekunden. Und das ists, was ich nicht ganz nachvollziehen kann.
Da bei dem Programm nur ganz wenig Speicher gebraucht wird und auch kaum Festplattenzugriffe erfolgen, da sollte meiner Meinung nach nur die Taktfrequenz ausschlaggebend sein. Das Ergebnis widerspricht aber offensichtlich meiner Meinung.
Und nun suche ich jemanden, der mir erklären kann, wo mein Denkfehler ist, und warum so gravierende Laufzeitunterschiede auftreten.
Gruß,
Adrian