gcc

Du kommst mit der Installation nicht voran oder willst noch was nachfragen? Schau auch in den "Tipps und Tricks"-Bereich.
Antworten
Benutzeravatar
grakaman
Beiträge: 21
Registriert: 14.10.2002 14:35:23
Wohnort: Frankfurt

gcc

Beitrag von grakaman » 15.10.2002 15:05:01



ich bins wieder :D meine jetzige frage: wie kann ich beim kompilieren von software (zb. mplayer etc.) optimieren? irgendwie geht es doch den prozessortyp anzugeben. kann jemand ma ein bsp. posten? danke

mfg
graka

ps. welche version von gcc würdet ihr momentan empfehlen?

Benutzeravatar
pdreker
Beiträge: 8298
Registriert: 29.07.2002 21:53:30
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: Nürnberg

Beitrag von pdreker » 15.10.2002 15:23:29

Unterhalb von gcc-3.2 würde ich keine zusätzlichen Optimierungen anwenden, weil die 1) nichts bringen und 2) Stabilität beeinflussen können.

Ab gcc-3.2 (auch schon vorher, aber die anderen 3.x Versionen sind nicht empfehlenswert) kann man dann etwas aufdrehen.

Dazu setzt man die CFLAGS Environment Variable mit den Optimierungs Optionen, die man gerne hätte.
Beispiel

Code: Alles auswählen

# export CFLAGS="--march=athlon-tbird -O3 -pipe"
# make
Bei C++ Code muss man die Variable CXXFLAGS setzen, und zwar auf den gleichen Wert. Das Beispiel oben ist für einen Athlon Thunderbird, es gibt natürlich noch andere Architekturen (`i386', `i486', `i586', `i686', `pentium', `pentium-mmx', `pentiumpro', `pentium2', `pentium3', `pentium4', `k6', `k6-2', `k6-3', `athlon', `athlon-tbird', `athlon-4', `athlon-xp' and `athlon-mp')

Noch ein paar Tipps: Finger weg von optimierten Kerneln, das macht nur Ärger, wenn man nicht 101%ig weiss, was man macht. Auch essentielle Pakete (libc usw.) sollte man mit den default Optionen compilieren. Wo es sich lohnen kann sind solche Sachen wie mplayer, mencoder, transcode und die dazugehörigen Codec Libs z.B. Grundsätzlich solltest Du Dir nicht zuviel versprechen. 2 oder 3% schneller wird's im Durchschnitt werden. Ein komplett mit allen Libs durchoptimiertes transcode ist beim xvid encoden 8% schneller. Das ist aber auch der absolute Rekord den ich je geschafft habe....

Patrick
Definitely not a bot...
Jabber: pdreker@debianforum.de

Benutzeravatar
grakaman
Beiträge: 21
Registriert: 14.10.2002 14:35:23
Wohnort: Frankfurt

re

Beitrag von grakaman » 15.10.2002 15:32:23

danke

irgendwo hab ich aber mal gelesen, dass du n flag mit zb. 686 angeben kannst, also einfach nur die generation. ich hab noch ein celeron (466@512), da nehm ich dann wohl den p3 als flag?

mfg

Benutzeravatar
pdreker
Beiträge: 8298
Registriert: 29.07.2002 21:53:30
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: Nürnberg

Beitrag von pdreker » 15.10.2002 16:36:24

Kommt drauf an ob Du einen P2 oder einen P3 Celeron hast...
Das -march Flag ist eine Sammeleinstellung, die sowohl Codegeneration, als auch Sachen wie Loop Construction und Spezialbefehle umfasst. Leider kann gcc (AFAIK) nicht so etwas wie SSE Loop Unrolling oder automatisches MMX oder 3dnow.

Wenn Du eine Intel CPU hast möchtest Du vielleicht 'mal den icc (Intel C Compiler) ausprobieren, der kann hammerhart SSE Optimierungen erzeugen und bringt in bestimmten Anwendungen Faktor 2 (sic!), ist allerdings noch etwas "roh", und kann nicht alles compilieren... Das kann also in Handarbeit ausarten...

Patrick
Definitely not a bot...
Jabber: pdreker@debianforum.de

Antworten