Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Kompileroptimierung für Code mit Konstanten? (https://www.delphipraxis.net/209299-kompileroptimierung-fuer-code-mit-konstanten.html)

user69 19. Nov 2021 09:54

Delphi-Version: 5

Kompileroptimierung für Code mit Konstanten?
 
Ich habe mal ne Frage zu automatischen Compileroptimieren (D10.4.2):
Optimiert der Compiler einfache Rechnungen mit konstanten im Code automatisch und fasst die zusammen?

Beispiel:

Ist "if (x > 180 - 0.1) then" in der Ausführung das selbe wie "if (x > 179.9) then"?
Ist "if (x > 180 - cTol) then" in der Ausführung das selbe wie "if (x > 179.9) then"? (mit "const cTol = 0.1")

Mir geht es da vor allem um den Speed. "if (x > 180 - 0.1) then" wäre vom Code einfacher lesbarer, aber ist es gleich performant?

Wenn dies optimiert wird (was ich hoffe) wo liegen die grenzen, wo die Optimierungen aufhören?

Uwe Raabe 19. Nov 2021 09:58

AW: Kompileroptimierung für Code mit Konstanten?
 
Ja, der Compiler rechnet Ausdrücke, die nur aus Konstanten bestehen, schon vorab aus. Das kann man auch daran erkennen, dass man solche Ausdrücke auch bei der Deklaration von Konstanten verwenden kann.

Edit: Hier noch ein Link zur Doku: https://docwiki.embarcadero.com/RADS...nt_Expressions

himitsu 19. Nov 2021 12:26

AW: Kompileroptimierung für Code mit Konstanten?
 
Zitat:

Konstanten
untypisierte Konstanten-Deklarationen,

denn typisierte Konstanten sind als schreibgeschützte Variablen implementiert.



Aber für direkte Konstanten, egal ob typisiert (Cast drumrum) oder untypisiert
und für untypisierte Konstanten-Deklarationen (im CONST),
da stimmt die Aussage, dass es zusammengerechnet wird.

Nur "Strings" werden wohl nicht immer zusammengesetzt, da der Compiler eine Längenbegrenzung für String-Konstanten hat,
außerdem sind Strings durch die interne Referenzierung immer als Referenz (wie eine Variable) und nicht direkt eingefügt.

user69 20. Nov 2021 10:27

AW: Kompileroptimierung für Code mit Konstanten?
 
Super.

Vielen Dank für eure Hilfe.


Alle Zeitangaben in WEZ +1. Es ist jetzt 10:37 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz