Hallo zusammen,
mir ist aufgefallen, daß bei gleichem Quellcode und gleichen Build-Einstellungen die beiden unten aufgeführten Kombinationen unterschiedlich große Ergenisse liefern.
Bei einem Testprojekt und
Lazarus 3.9 (rev lazarus_3_8-16-gf1feaaf4e0) FPC 3.2.2 x86_64-linux-gtk2
sind es 6341792 Byte.
Bei
Lazarus 4.0RC2 (rev lazarus_4_0RC2-165-gdc81b2e397) FPC 3.2.3 x86_64-linux-gtk2
sind es 6459664 Byte.
Nicht daß es so extrem wichtig wäre, aber rein aus Interesse würde ich schon gerne wissen wo der Unterschied von ~115kB herkommt. Vielleicht kann mich jemand erleuchten …
Danke,
42m
Unterschiedliche Größen des Kompilats FPC 3.2.2 vs. 3.2.3
- af0815
- Lazarusforum e. V.
- Beiträge: 6770
- Registriert: So 7. Jan 2007, 10:20
- OS, Lazarus, FPC: FPC fixes Lazarus fixes per fpcupdeluxe (win,linux,raspi)
- CPU-Target: 32Bit (64Bit)
- Wohnort: Burgenland
- Kontaktdaten:
Re: Unterschiedliche Größen des Kompilats FPC 3.2.2 vs. 3.2.3
Du verwendest unterschiedliche Versionen vom FPC und auch von Lazarus. Somit sind die FCL und die LCL vom Umfang her unterschiedlich. Auch können sich die Abhängigkeiten der Units geändert haben, alles so Kleinigkeiten, die die Codegröße ändern können, egal welche Richtung.
Blöd kann man ruhig sein, nur zu Helfen muss man sich wissen (oder nachsehen in LazInfos/LazSnippets).
- greye
- Beiträge: 47
- Registriert: So 16. Feb 2014, 15:38
- OS, Lazarus, FPC: Debian/Fedora/Windows, Lazarus 3.6/4.0RC2, FPC 3.2.2
- CPU-Target: 64 Bit
Re: Unterschiedliche Größen des Kompilats FPC 3.2.2 vs. 3.2.3
Danke, sowas habe ich mir fast schon gedacht. Habe gerade Zeit - neben der Brennblase sitzen und warten, bis der Schnaps läuft ist zäh, wenn man sich nicht anderweitig beschäftigtaf0815 hat geschrieben: Sa 15. Mär 2025, 12:39 Du verwendest unterschiedliche Versionen vom FPC und auch von Lazarus. Somit sind die FCL und die LCL vom Umfang her unterschiedlich. Auch können sich die Abhängigkeiten der Units geändert haben, alles so Kleinigkeiten, die die Codegröße ändern können, egal welche Richtung.


42m
- af0815
- Lazarusforum e. V.
- Beiträge: 6770
- Registriert: So 7. Jan 2007, 10:20
- OS, Lazarus, FPC: FPC fixes Lazarus fixes per fpcupdeluxe (win,linux,raspi)
- CPU-Target: 32Bit (64Bit)
- Wohnort: Burgenland
- Kontaktdaten:
Re: Unterschiedliche Größen des Kompilats FPC 3.2.2 vs. 3.2.3
Interessanter sind die Auswirkungen der Optimierungsstufen
falls du dir was nebenbei ansehen willst.

Blöd kann man ruhig sein, nur zu Helfen muss man sich wissen (oder nachsehen in LazInfos/LazSnippets).
- greye
- Beiträge: 47
- Registriert: So 16. Feb 2014, 15:38
- OS, Lazarus, FPC: Debian/Fedora/Windows, Lazarus 3.6/4.0RC2, FPC 3.2.2
- CPU-Target: 64 Bit
Re: Unterschiedliche Größen des Kompilats FPC 3.2.2 vs. 3.2.3
Über die bin ich schon gestolpert, als ich mich gewundert habe, warum im Release Build (-O3) die mühsam gezimmerte Schleife, die einfach nur ein paar Millionen mal Blödsinn berechnen sollte, "wegoptimiert" war. "Schuld" war DFA, das richtigerweise der Meinung war, daß eine Schleife, deren Ergebnis nirgendwo verwendet wird, auch weg kann.af0815 hat geschrieben: Sa 15. Mär 2025, 14:37 Interessanter sind die Auswirkungen der Optimierungsstufenfalls du dir was nebenbei ansehen willst.
Hat ein bisschen gedauert, bis ich drauf kam …
viewtopic.php?p=147556#p147556
42m
-
- Beiträge: 6910
- Registriert: Do 2. Jan 2014, 17:21
- OS, Lazarus, FPC: Linux (die neusten Trunk)
- CPU-Target: 64Bit
- Wohnort: Schweiz
Re: Unterschiedliche Größen des Kompilats FPC 3.2.2 vs. 3.2.3
Solche Schleifen sind sowiesd schlecht, während der TP Zeit habe ich dies auch nicht realisiert, das die PCs immer schneller werden und damit auch die Schleifen kürzer.Über die bin ich schon gestolpert, als ich mich gewundert habe, warum im Release Build (-O3) die mühsam gezimmerte Schleife, die einfach nur ein paar Millionen mal Blödsinn berechnen sollte, "wegoptimiert" war. "Schuld" war DFA, das richtigerweise der Meinung war, daß eine Schleife, deren Ergebnis nirgendwo verwendet wird, auch weg kann.
Daher ist es besser man nimmt irgend ein Delay vom System.
Mit Lazarus sehe ich grün
Mit Java und C/C++ sehe ich rot
Mit Java und C/C++ sehe ich rot
- greye
- Beiträge: 47
- Registriert: So 16. Feb 2014, 15:38
- OS, Lazarus, FPC: Debian/Fedora/Windows, Lazarus 3.6/4.0RC2, FPC 3.2.2
- CPU-Target: 64 Bit
Re: Unterschiedliche Größen des Kompilats FPC 3.2.2 vs. 3.2.3
Ja, aber nein, aber ja, aber nein, aber … <vicky_pollard />Mathias hat geschrieben: Sa 15. Mär 2025, 15:53 Solche Schleifen sind sowiesd schlecht, während der TP Zeit habe ich dies auch nicht realisiert, das die PCs immer schneller werden und damit auch die Schleifen kürzer.
Daher ist es besser man nimmt irgend ein Delay vom System.
Würde ich normalerweise auch so machen, wenn ich eine bestimmte Zeit "vertrödeln" will, aber mir ging es in dem Fall gerade darum, die Unterschiede verschiedener Arten einer Berechnung zu testen. Da war es dann seltsam, daß alle Varianten in nicht mal einem Tick fertig waren

Aber ich habe was dabei gelernt, das war es dann auf jeden Fall wert.
42m