Einzelnen Beitrag anzeigen

Cöster

Registriert seit: 6. Jun 2006
589 Beiträge
 
Turbo Delphi für Win32
 
#3

Re: seltsames Phänomen: mehr Operationen = weniger Rechenzei

  Alt 4. Apr 2007, 16:42
Also ich hab die Optimierung zum Test mal ausgestellt, dann ist alles normal.

Dann hab ich mir noch den aus dem If-Block (z. 13-18) erzeugten ASM-Code (bei angeschalteter Optimierung) für die Version mit und ohne Sqrt angeschaut und verglichen. Die Sprungadressen unterscheiden sich natürlich, weil der Code mit Sqrt länger ist. Die Adressen bei dem Befehl FCOMP sind auch unterschiedlich. Ein Beispiel:

Ohne Sqrt:
Code:
fcomp dword ptr [$00453ffc]
Mit Sqrt:
Code:
fcomp dword ptr [$0045400c]
Der Sqrt-Aufruf, der in der Sqrt-Version zusätzlich ist, wird so übersetzt:
Code:
add esp,-$0c
fstp tbyte ptr [esp]
wait
call Sqrt
Außer der unterschiedlichen Adressen und dem zusätzlichen Sqrt-Aufruf in der Sqrt-Version gibt es in dem If-Block keine Unterschiede zwischen den ASM-Codes. Trotzdem ist die Sqrt-Version langsamer.
  Mit Zitat antworten Zitat