Ein dickes Ei mit drin?
-
- Beiträge: 1581
- Registriert: Fr 10. Okt 2008, 23:54
- OS, Lazarus, FPC: Winuxarm (L 4 FPC 3.2.2)
- CPU-Target: 32/64Bit
Ein dickes Ei mit drin?
Hallo,
Ich nutzte bis vor kurzem die Lazarus Version von Ende Juli. Meine EXE Gestrippt und mit UPX kleiner gemacht waren es 1,1MB.
Nun habe ich die aktuelle Lazarus Version, gestrippt und mit UPX die EXE keiner gemacht hat diese nun 1,4MB.
Ich meine, da wurde weiter programmiert, aber dass da komprimiert 300KB mehr drin ist, das kommt mir doch recht komisch vor.
- Mein Quellcode ist der gleiche!
- Ich hatte das auch schon mit einer Version Ende August gemerkt, da dachte ich es muss vielleicht noch ein Bug entstanden sein, also habe ich gewartet.
Gibt es dafür eine Erklärung? Wurden irgend welche Ressourcen mit dazu eingebunden, die ich eigentlich gar nicht haben will/brauche?
Mir kommt das sehr komisch vor, daher dieser Thread.
Kann mir bitte jemand zeigen woran das liegen könnte?
Grüße Markus.
Ich nutzte bis vor kurzem die Lazarus Version von Ende Juli. Meine EXE Gestrippt und mit UPX kleiner gemacht waren es 1,1MB.
Nun habe ich die aktuelle Lazarus Version, gestrippt und mit UPX die EXE keiner gemacht hat diese nun 1,4MB.
Ich meine, da wurde weiter programmiert, aber dass da komprimiert 300KB mehr drin ist, das kommt mir doch recht komisch vor.
- Mein Quellcode ist der gleiche!
- Ich hatte das auch schon mit einer Version Ende August gemerkt, da dachte ich es muss vielleicht noch ein Bug entstanden sein, also habe ich gewartet.
Gibt es dafür eine Erklärung? Wurden irgend welche Ressourcen mit dazu eingebunden, die ich eigentlich gar nicht haben will/brauche?
Mir kommt das sehr komisch vor, daher dieser Thread.
Kann mir bitte jemand zeigen woran das liegen könnte?
Grüße Markus.
EleLa - Elektronik Lagerverwaltung - www.elela.de
-
- Beiträge: 359
- Registriert: Mi 27. Mai 2009, 20:54
- OS, Lazarus, FPC: OpenSuse11.4 x86 (Lazarus: 0.9.30 FPC 2.4.2)
- CPU-Target: x86
- Wohnort: Cottbus
Re: Ein dickes Ei mit drin?
Du nutzt ja schon immer die LCL mit.
Diese wird von Version zu Version mächtiger und scheinbar kommen die Optimierungen nicht in der selben Geschwindigkeit vorwärts wie die erweiterung.
So würde ich das zumindest erklären.
Gruß Teekeks
Diese wird von Version zu Version mächtiger und scheinbar kommen die Optimierungen nicht in der selben Geschwindigkeit vorwärts wie die erweiterung.
So würde ich das zumindest erklären.
Gruß Teekeks
-
- Lazarusforum e. V.
- Beiträge: 2808
- Registriert: Fr 22. Sep 2006, 10:38
- OS, Lazarus, FPC: Lazarus v2.0.10, FPC 3.2.0
- Wohnort: Hessen
- Kontaktdaten:
Re: Ein dickes Ei mit drin?
MSVisual: Dieser vom Teekeks genannte Einfluss kann möglicherweise reduziert werden, wenn SmartLinking aktiviert ist.Teekeks hat geschrieben:Du nutzt ja schon immer die LCL mit.
Diese wird von Version zu Version mächtiger und scheinbar kommen die Optimierungen nicht in der selben Geschwindigkeit vorwärts wie die erweiterung.
Viele Grüße, Euklid
-
- Beiträge: 1581
- Registriert: Fr 10. Okt 2008, 23:54
- OS, Lazarus, FPC: Winuxarm (L 4 FPC 3.2.2)
- CPU-Target: 32/64Bit
Re: Ein dickes Ei mit drin?
So wie im Bild sehen meine Einstellungen aus (Standard Lazarus)
Auch wenn ich den -CX Parameter aktiviere, wird die EXE nicht wirklich kleiner. (nach Strip/UPX)
Über weitere Tipps wäre ich dankbar.
Grüße Markus.
Auch wenn ich den -CX Parameter aktiviere, wird die EXE nicht wirklich kleiner. (nach Strip/UPX)
Über weitere Tipps wäre ich dankbar.
Grüße Markus.
EleLa - Elektronik Lagerverwaltung - www.elela.de
-
- Beiträge: 1102
- Registriert: Di 5. Aug 2008, 09:37
- OS, Lazarus, FPC: Windows ,Linux,FreeBSD,Dos (L trunk FPC trunk)
- CPU-Target: 32/64,PPC(+64), ARM
- Wohnort: Eindhoven (Niederlande)
Re: Ein dickes Ei mit drin?
Sind alle prekompilierten Units (von FPC und Lazarus) schon mit -CX kompiliert? FPC releases sind so kompiliert, aber Snapshots oft nicht.
-
- Beiträge: 1581
- Registriert: Fr 10. Okt 2008, 23:54
- OS, Lazarus, FPC: Winuxarm (L 4 FPC 3.2.2)
- CPU-Target: 32/64Bit
Re: Ein dickes Ei mit drin?
Ich habe die Software einfach von http://www.hu.freepascal.org/lazarus" onclick="window.open(this.href);return false; geladen und das Windows-Setup gestartet.
Danach in Lazarus noch Zeos installiert.
Ich habe mal Lazarus neu Kompilliert und die Einstellung so gemacht wie im Bild gezeigt. Aber neukompillieren meiner EXE macht nichts kleiner.
Hab ich jetzt da was falsch eingegeben? (Meine Lazarus.exe hat 135MB)
Gruß Markus.
Danach in Lazarus noch Zeos installiert.
Ich habe mal Lazarus neu Kompilliert und die Einstellung so gemacht wie im Bild gezeigt. Aber neukompillieren meiner EXE macht nichts kleiner.
Hab ich jetzt da was falsch eingegeben? (Meine Lazarus.exe hat 135MB)
Gruß Markus.
EleLa - Elektronik Lagerverwaltung - www.elela.de
-
- Lazarusforum e. V.
- Beiträge: 3178
- Registriert: Di 22. Jul 2008, 19:27
- OS, Lazarus, FPC: Lazarus: SVN; FPC: svn; Win 10/Linux/Raspbian/openSUSE
- CPU-Target: 32bit x86 armhf
- Wohnort: Köln
- Kontaktdaten:
Re: Ein dickes Ei mit drin?
Nach meinem Verständnis hat -CX nur Auswirkungen auf das Kompilieren von Units. D.h. die vorkompilierten Units können dann smart gelinkt werden -- oder auch nicht. Damit das geschieht, muss noch die Option -XX aktiviert werden.marcov hat geschrieben:Sind alle prekompilierten Units (von FPC und Lazarus) schon mit -CX kompiliert? FPC releases sind so kompiliert, aber Snapshots oft nicht.
135 MB sprechen für Debugging Symbole (ich weiß nicht, warum die per Standard in Lazarus enthalten sind...) und wahrscheinlich wenige Optimierungen.MmVisual hat geschrieben:Ich habe mal Lazarus neu Kompilliert und die Einstellung so gemacht wie im Bild gezeigt. Aber neukompillieren meiner EXE macht nichts kleiner.
Hab ich jetzt da was falsch eingegeben? (Meine Lazarus.exe hat 135MB)
MfG Socke
Ein Gedicht braucht keinen Reim//Ich pack’ hier trotzdem einen rein
Ein Gedicht braucht keinen Reim//Ich pack’ hier trotzdem einen rein
-
- Beiträge: 1581
- Registriert: Fr 10. Okt 2008, 23:54
- OS, Lazarus, FPC: Winuxarm (L 4 FPC 3.2.2)
- CPU-Target: 32/64Bit
Re: Ein dickes Ei mit drin?
Wenn ich die Lazarus-Exe Strippe, dann wird die schon kleiner. Wenn ich in dem Dialog die Parameter "-CX -Xs" angebe, dann strippt da nichts automatisch. Ich dachte -Xs ist für Strippen zuständig?
EleLa - Elektronik Lagerverwaltung - www.elela.de
-
- Lazarusforum e. V.
- Beiträge: 3178
- Registriert: Di 22. Jul 2008, 19:27
- OS, Lazarus, FPC: Lazarus: SVN; FPC: svn; Win 10/Linux/Raspbian/openSUSE
- CPU-Target: 32bit x86 armhf
- Wohnort: Köln
- Kontaktdaten:
Re: Ein dickes Ei mit drin?
-Xs soll automatisch strippen. Ich glaube nur, dass das keinen Effekt hat, wenn gleichzeitig -g angegeben ist. Mit -Xg kannst du zumindest die Debuggersymbole in eine extra Datei schreiben lassen. Ich empfehle zusätzlich -CX und -XX immer gemeinsam zu verwenden.
MfG Socke
Ein Gedicht braucht keinen Reim//Ich pack’ hier trotzdem einen rein
Ein Gedicht braucht keinen Reim//Ich pack’ hier trotzdem einen rein
-
- Beiträge: 1581
- Registriert: Fr 10. Okt 2008, 23:54
- OS, Lazarus, FPC: Winuxarm (L 4 FPC 3.2.2)
- CPU-Target: 32/64Bit
Re: Ein dickes Ei mit drin?
Jetzt habe ich Lazarus mit -CX -XX -Xs kompilliert, weder Lazarus wurde kleiner, noch meine EXE.
Hat noch jemand eine Idee?

Hat noch jemand eine Idee?
EleLa - Elektronik Lagerverwaltung - www.elela.de
-
- Lazarusforum e. V.
- Beiträge: 2808
- Registriert: Fr 22. Sep 2006, 10:38
- OS, Lazarus, FPC: Lazarus v2.0.10, FPC 3.2.0
- Wohnort: Hessen
- Kontaktdaten:
Re: Ein dickes Ei mit drin?
Abwarten, bis sich das Problem mit einer neuen Lazarus-Version von selbst behebt 
Mal im Ernst: In Zeiten des DSL haben 0,3 MB auch nicht mehr so das Gewicht.

Mal im Ernst: In Zeiten des DSL haben 0,3 MB auch nicht mehr so das Gewicht.
-
- Beiträge: 1581
- Registriert: Fr 10. Okt 2008, 23:54
- OS, Lazarus, FPC: Winuxarm (L 4 FPC 3.2.2)
- CPU-Target: 32/64Bit
Re: Ein dickes Ei mit drin?
Es geht nicht um die Größe, sondern viel mehr darum dass es ein Hinweis ist, dass sich in Lazarus oder FPC ein Bug eingeschlichen haben könnte.
Theoretisch: Der FPC wurde so geändert, dass er einen effizienteren Code machte, dafür kann der UPX nicht mehr zu gut komprimieren.
Das wäre zumindest eine Antwort, mit der ich zu frieden wäre. Es wäre natürlich nicht schlecht wenn das jemand, der die Internas kennt, bestätigen könnte.
Ich achte nunmal auf solche Dinge, denn die bedeuten oftmals neue Probleme an irgend einer anderen Stelle.
Genauso wie ich auf die Geschwindigkeit immer achte, denn wenn das mal langsam wird, dann hab ich mist programmiert.
Theoretisch: Der FPC wurde so geändert, dass er einen effizienteren Code machte, dafür kann der UPX nicht mehr zu gut komprimieren.
Das wäre zumindest eine Antwort, mit der ich zu frieden wäre. Es wäre natürlich nicht schlecht wenn das jemand, der die Internas kennt, bestätigen könnte.
Ich achte nunmal auf solche Dinge, denn die bedeuten oftmals neue Probleme an irgend einer anderen Stelle.
Genauso wie ich auf die Geschwindigkeit immer achte, denn wenn das mal langsam wird, dann hab ich mist programmiert.
EleLa - Elektronik Lagerverwaltung - www.elela.de
-
- Lazarusforum e. V.
- Beiträge: 3178
- Registriert: Di 22. Jul 2008, 19:27
- OS, Lazarus, FPC: Lazarus: SVN; FPC: svn; Win 10/Linux/Raspbian/openSUSE
- CPU-Target: 32bit x86 armhf
- Wohnort: Köln
- Kontaktdaten:
Re: Ein dickes Ei mit drin?
UPX ist doch ein reiner Komprimierungsalgorithmus. Ihm sollte es daher auch egal sein, wie effizient der zu komprimierende Binärcode ist.MmVisual hat geschrieben:Theoretisch: Der FPC wurde so geändert, dass er einen effizienteren Code machte, dafür kann der UPX nicht mehr zu gut komprimieren.
Das wäre zumindest eine Antwort, mit der ich zu frieden wäre. Es wäre natürlich nicht schlecht wenn das jemand, der die Internas kennt, bestätigen könnte.
Ich bin so optimistisch und schiebe das auf neue Features. Genaueres wirst du wahrscheinlich nur durch eine detaillierte Differenzanalyse des entsprechenden Quellcodes (RTL, FCL und LCL; alles andere ist egal/gleich) herausfinden. Es reicht ja schon aus, eine Funktion als virtual zu deklarieren, damit sie ohne Optimierungen selbst bei Smartlinking mit in das Programm gelinkt wird (-> ein Wort => viele zusätzliche Zeilen im Programm).MmVisual hat geschrieben:Es geht nicht um die Größe, sondern viel mehr darum dass es ein Hinweis ist, dass sich in Lazarus oder FPC ein Bug eingeschlichen haben könnte.
Vielleicht schaust du dir auch mal die Whole Program Optimization an. Mein etwas älteres Lazarus (SVN) hat dafür noch keine Optionen.
MfG Socke
Ein Gedicht braucht keinen Reim//Ich pack’ hier trotzdem einen rein
Ein Gedicht braucht keinen Reim//Ich pack’ hier trotzdem einen rein
-
- Beiträge: 1581
- Registriert: Fr 10. Okt 2008, 23:54
- OS, Lazarus, FPC: Winuxarm (L 4 FPC 3.2.2)
- CPU-Target: 32/64Bit
Re: Ein dickes Ei mit drin?
Ich möchte jetzt Nägel mit Köpfe machen.
Ich habe folgendes installiert:
Lazarus-0.9.29-27083-fpc-2.4.3-20100813-win32.exe >> EXE, nach Strip und UPX 1170KB
Lazarus-0.9.29-27409-fpc-2.4.3-20100919-win32.exe >> EXE, nach Strip und UPX 1454KB
(mein Quellcode beides mal der gleiche)
Jetzt möchte ich gerne die Versionen dazwischen installieren.
Kann ich irgendwo die EXE Lazarus-Versionen dazwischen noch laden?
Die Dateien vergleichen mit den über 300 Versionen dazwischen ist doch etwas mühsam, daher würde ich gerne diese Setups, die dazwischen waren laden und installieren. Leider habe ich nur diese beiden Versionen. Wenn ich auch nur ein paar Versionen dazwischen bekommen könnte, dann würde das meine Suche doch enorm eingranzen. Danke für eure Hilfe!
Heute nutze ich die Version "Lazarus-0.9.29-28634-fpc-2.4.2-20101206-win32.exe", also mit dem FPC 2.4.2 und die EXE ist dennoch 1,4MB groß. Daher vermute ich diese Extra 300 KB kommen nicht vom FPC sondern von Lazarus.
Gruß Markus.
Ich habe folgendes installiert:
Lazarus-0.9.29-27083-fpc-2.4.3-20100813-win32.exe >> EXE, nach Strip und UPX 1170KB
Lazarus-0.9.29-27409-fpc-2.4.3-20100919-win32.exe >> EXE, nach Strip und UPX 1454KB
(mein Quellcode beides mal der gleiche)
Jetzt möchte ich gerne die Versionen dazwischen installieren.
Kann ich irgendwo die EXE Lazarus-Versionen dazwischen noch laden?
Die Dateien vergleichen mit den über 300 Versionen dazwischen ist doch etwas mühsam, daher würde ich gerne diese Setups, die dazwischen waren laden und installieren. Leider habe ich nur diese beiden Versionen. Wenn ich auch nur ein paar Versionen dazwischen bekommen könnte, dann würde das meine Suche doch enorm eingranzen. Danke für eure Hilfe!
Heute nutze ich die Version "Lazarus-0.9.29-28634-fpc-2.4.2-20101206-win32.exe", also mit dem FPC 2.4.2 und die EXE ist dennoch 1,4MB groß. Daher vermute ich diese Extra 300 KB kommen nicht vom FPC sondern von Lazarus.
Gruß Markus.
EleLa - Elektronik Lagerverwaltung - www.elela.de
-
- Beiträge: 588
- Registriert: Mi 25. Mär 2009, 21:12
- OS, Lazarus, FPC: Laz trunk / fpc latest release / Win and other
- CPU-Target: mostly 32 bit
Re: Ein dickes Ei mit drin?
Die Versionen dazwischen kriegst Du nur ueber SVN. Ist aber nicht weiter schwierig.
Was 300 Revisionen angeht, entweder war es ein kontinuierlicher Anstieg, dann kannst du keine Revision finden die "schuld" war, oder: binary search.
27083 - 27409 => installiere die Mitte: 27245
Wenn die schon gewachsen ist, Mitte davor (27165), sonst Mitte danach.
300 Revisionen = 9 mal testen
Aber überlege dir vorher wozu...
Selbst wenn du die findest... Das wird 99% wahrscheinlich nix aendern.
Was 300 Revisionen angeht, entweder war es ein kontinuierlicher Anstieg, dann kannst du keine Revision finden die "schuld" war, oder: binary search.
27083 - 27409 => installiere die Mitte: 27245
Wenn die schon gewachsen ist, Mitte davor (27165), sonst Mitte danach.
300 Revisionen = 9 mal testen
Aber überlege dir vorher wozu...
Selbst wenn du die findest... Das wird 99% wahrscheinlich nix aendern.