Einzelnen Beitrag anzeigen

SMO

Registriert seit: 20. Jul 2005
178 Beiträge
 
Delphi XE6 Professional
 
#5

AW: Suboptimale Klassenoperatoren?

  Alt 1. Mär 2015, 18:27
Wisst ihr (ausgenommen Uwe, der weiß es) eigentlich, was das mit dem class operator auf sich hat?
Ich weiß es auch. Und ich glaube, himitsu will darauf hinaus, dass es einfach unsinnig ist und der Compiler suboptimalen Code produziert.

Sei i: Integer, dann produziert "Inc(i)" Code, der den Inhalt von i an Ort und Stelle ("In-Place") erhöht.
In Rufos Beispiel produziert "Inc( LFoo )" dagegen Code, der TFoo.Inc(LFoo) aufruft, was eine temporäre Kopie von LFoo erstellt, die erhöht, nur um das Ergebnis dann gleich wieder LFoo zuzuweisen. Also praktisch: "LFooTemp := LFoo.Inc; LFoo := LFooTemp;" Dieser zusätzliche Schritt mit der Kopie erscheint unnötig und kann mit größeren Records Leistung verschwenden.
  Mit Zitat antworten Zitat