Pakete nach apt-build kompilation einiges grösser

Vom einfachen Programm zum fertigen Debian-Paket, Fragen rund um Programmiersprachen, Scripting und Lizenzierung.
Antworten
jaspis
Beiträge: 72
Registriert: 24.09.2004 22:04:18

Pakete nach apt-build kompilation einiges grösser

Beitrag von jaspis » 09.02.2005 11:40:49

Hallo

Momentan kompiliere ich die wichtigsten Pakete (x, gnome, kde, mozilla,..) neu, um sie auf meinem alten Rechner (P2, 300MHz) etwas schneller laufen zu kriegen. Allerdings hab ich da nun meine Zweifel. Denn wenn ich ein optimiert compiliertes Paket installieren möchte, brauchen sie einige 100KB mehr Platz auf dem Rechner (ausgepackt).
Doch rechnete ich damit, dass die Pakete kleiner würden, da ein Pentium für die gleiche Applikation weniger Befehle ausführen muss als ein 80386?! Kann mir da jemand den Grund dafür erklären?

Gruss,
Daniel

gms
Beiträge: 7798
Registriert: 26.11.2004 20:08:38
Lizenz eigener Beiträge: MIT Lizenz

Beitrag von gms » 09.02.2005 12:10:45

überprüfe einmal ob deine Programme, Shared Objects/Libraries "stripped" sind

du solltest ungefähr so eine Ausgabe bekommen

Code: Alles auswählen

file <binaryfile>
<binaryfile>: ELF 32-bit LSB shared object, Intel 80386, version 1 (SYSV), stripped
Ändern kannst du das mit dem Programm "strip", bzw Linker Option wäre "-S"

Benutzeravatar
Joghurt
Beiträge: 5244
Registriert: 30.01.2003 15:27:31
Wohnort: Hamburg
Kontaktdaten:

Re: Pakete nach apt-build kompilation einiges grösser

Beitrag von Joghurt » 09.02.2005 14:26:00

jaspis hat geschrieben:Doch rechnete ich damit, dass die Pakete kleiner würden, da ein Pentium für die gleiche Applikation weniger Befehle ausführen muss als ein 80386?!
Diese Befehle sind aber nicht unbedingt schneller. Was auch optimiert wird, ist die Position der Variablen im Speicher, diese müssen an einer durch 4,8 oder sogar 16 teilbaren Speicheradresse liegen, damit der Pentium sie in einem Takt auslesen kann. So nehmen 2 chars dann plötzlich bis zu 16 Bytes ein.
Dies und andere Sachen führen dazu, das die Executables größer werden. Wenn du anstatt -O3 -Os angibst, wird eher auf kleine Dateigröße geachtet.
Du kannst natürlich auch mit -falign-functions etc. rumspielen, wenn du viel Wert auf Platz legst, das Programm wird dann natürlich langsamer.

HTH

jaspis
Beiträge: 72
Registriert: 24.09.2004 22:04:18

Beitrag von jaspis » 09.02.2005 20:29:35

Hallo

Danke für die Antworten.
Ich hab -O2 als Optimierungsgrad angegeben (den Mittelweg zwischen Dateigrösse und Geschwindigkeit). Hier im Forum wird überall von -O3 abgeraten, da zu fest optimiert Fehler verursachen könnte..

wie geht das mit dem "strippen genau?
einfach "strip gnome-session" angeben zum Bsp.?

Hab ich mal durchgeführt, die Dateigrösse veränderte sich nicht, aber es hat was gemacht, weil ich dies an der neuen Uhrzeit der Datei sehen konnte. Auch "strip -s gnome-session" veränderte die Dateigrösse nicht.

Gruss,
jaspis

Antworten