Registriert seit: 12. Aug 2003
Ort: Soest
4.016 Beiträge
Delphi 10.1 Berlin Enterprise
|
AW: Codeoptimierung lieber abschalten
9. Jan 2023, 13:16
Ich korrigiere mal einige Aussagen bezüglich "rückwärts zählende Schleifen".
Sofern die Zählvariable innerhalb des Schleifenrumpfes benutzt wird, fügt der Compiler zusätzlich zu der Zählvariable, welche sich im korrekten Wertebereich bewegt zusätzlich eine Variable ein, die er nutzt, um auf 0 runter zu zählen. Diese wird aber nicht wie etwa von Himitsu skizziert für irgendetwas anderes genutzt als für den Schleifen Code an sich. Interessanterweise passiert dies in dem geposteten Code nicht mal, sondern nur, wenn lower und/oder upper bound variabel sind.
Das auf 0 runter zählen ist eine gängige Optimierung da hierbei nach dem Dekrement direkt ein bedingter Sprungbefehl stehen kann, anstatt zuerst einen Vergleich auf die obere Grenze - je nachdem wie viele Register für den Code gebraucht werden, kann das aber auch eher nachteilig sein, gerade unter 32bit hat man nur eine Handvoll davon.
Geändert von Stevie ( 9. Jan 2023 um 13:39 Uhr)
|