KDE, konstruct und Compiler-Flags zur Optimierung

Vom einfachen Programm zum fertigen Debian-Paket, Fragen rund um Programmiersprachen, Scripting und Lizenzierung.
Antworten
nero2004
Beiträge: 265
Registriert: 03.11.2003 14:27:56

KDE, konstruct und Compiler-Flags zur Optimierung

Beitrag von nero2004 » 14.05.2004 08:36:08

Ich habe neulich kde mit Hilfe von kontruct selber gebaut. Als Unterbau dient ein wunderbar stabiles Debian-Sarge. Als ich kde-3.2.2 installierte, habe ich als Compiler-Option die Optimierung CFLAGS=-O3 angegeben, in der Hoffnung, dass gcc-3.3 optimiert.
Das funktionierte auch tadellos, sowohl bei kde als auch allen Libs & Applikationen. Es gibt im laufenden Betrieb keine Probleme. Das System ist stabil.
Nun meine Frage - im Streben nach weiterer Performance und Optimierung: gibt es evtl. weitere Compiler-Flags zur Optimierung? Das manual sagt mir als 5/6-Laie nicht viel.
(CPU: Pentium 4, 3,06 Ghz)

Nero2004

Benutzeravatar
vicbrother
Beiträge: 1016
Registriert: 23.12.2001 11:15:07
Wohnort: Hamburg

Beitrag von vicbrother » 21.06.2004 17:59:05

Hallo,

ich habe das jetzt auchmal getan und folgende Flags verwendet:
-O3 -march=pentium4 -mcpu=pentium4 -pipe -fomit-frame-pointer -msse -mmmx -mfpmath=sse -funroll-loops

Ich werde mich jetztmal damit beschäftigen wie ich die neue KDE starte..
Debian GNU/Linux "unstable" + KDE4 @ Dell Precision M6400
T9600 - 4GB RAM - 2x160GB RAID0 - nVIDIA Quadro FX 3700M - 17" WUXGA RGB LED - Webcam - Backlit Keyboard - UMTS - 9 Cell Battery -

nero2004
Beiträge: 265
Registriert: 03.11.2003 14:27:56

Beitrag von nero2004 » 23.06.2004 08:59:54

Hi vicbrother,

mille gracias für den Tip. Werde ich bei der nächsten Alpha-Version von KDE ausprobieren.
Zum Starten der neuen kompilierten KDE-Version bin ich so vorgegangen, dass ich KDE in /opt/<kde-3.2.99-alpha> installiert habe. Anschließend habe ich einen "link -s /opt/<kde-3.2.99-alpha1> /opt/kde" erzeugt.

Die neuen Umgebungsvariablen (im README von konstruct beschrieben) habe ich bei mir in der ~./profile eingetragen (als Pfad immer /opt/kde angeben).

Als letzte Maßnahme mußte ich die PATH-Variable um den Eintrag PATH=/opt/kde/bin:$PATH erweitern.
(Dunkel errinnere ich mich aber auch noch an irgend eine Anpassung in /etc/X11/startkde ...)

Bei neuen KDE-Versionen muß ich nur noch den Link in /opt anpassen. Auf diese Weise kann ich mehrere KDE's parallel vorhalten.

Nero2004

Benutzeravatar
vicbrother
Beiträge: 1016
Registriert: 23.12.2001 11:15:07
Wohnort: Hamburg

Beitrag von vicbrother » 23.06.2004 15:28:15

@nero2004:
Ich werde deinen Tip mal ausprobieren, aber er setzt die Variablen ja immer. Ich würe nur gerne zwischen KDE-Debian und KDE-Konstruct gerne wechseln können...

Zu den Optimierungen fällt mir noch ein, dass man in den Makefiles unter CONFIGURE_ARGS noch --disable-debug (erzeugt keinen Bugreportcode), --enable-fast-malloc (schnellere Speicherverwaltung), --enable-final (kleinere Programme) und --enable-objprelink (OBjekt Prelinking) setzen kann : ) Jetzt brauche ich nur noch ein Skript, welches alle Makefiles findet und diese Zeile ergänzt ; )

Wenn ich mich richtig entsinne, konnte man bei anderen Distris auch MP3s durch ziehen von Songs von CD auf den Desktop erstellen, bei Debian war das aber früher nicht drin (wegen Lizenzproblemen) und musste auch per Configure-Anweisung eingestellt werden. Aber wie das geht das kriege ich noch raus ... : )

Übrigens: gcc-3.4 erzeugt nochmals bis zu 10% schnelleren Code und hat noch einen weiteren netten Optimierungsflag --funit-at-a-time
Debian GNU/Linux "unstable" + KDE4 @ Dell Precision M6400
T9600 - 4GB RAM - 2x160GB RAID0 - nVIDIA Quadro FX 3700M - 17" WUXGA RGB LED - Webcam - Backlit Keyboard - UMTS - 9 Cell Battery -

nero2004
Beiträge: 265
Registriert: 03.11.2003 14:27:56

Beitrag von nero2004 » 24.06.2004 08:45:23

Du kannst die Variablen auch in einem eigenen script (z.B. mykde) zusammenfassen und als letztes Command ein 'startx' einsetzen. Die Variablen sind dann nur für die Session gültig. Damit läßt sich die konstruct-Variante mit "mykde" starten; mit "startx" die Debian-kde Version.

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

Beitrag von Joghurt » 24.06.2004 13:59:49

vicbrother hat geschrieben:ich habe das jetzt auchmal getan und folgende Flags verwendet:
-O3 -march=pentium4 -mcpu=pentium4 -pipe -fomit-frame-pointer -msse -mmmx -mfpmath=sse -funroll-loops
Impliziert -msse nicht -mmmx? Du kannst auch noch -ffast-math machen, wenn dir 100% Rechensicherheit nicht so wichtig ist (Sachen wie sqrt(-2) sind nicht mehr garantiert, NaN oder ähnliche Fehlercodes zu produzieren, IIRC)

Für die völlig durchgedrehten Optimizing-Junkies unter euch: kompiliert zusätzlich noch mit "-fprofile-arcs", führt mit allen KDE Programmen einen Teil eurer Täglichen Arbeit durch, und ersetzt dann "-fprofile-arcs" durch "-fbranch-probabilities". Diese doppelte Compilierungsweise bringt Steigerungen so um 0.5% bis 1% :twisted:

Antworten