Gå til innhold

CFLAGS + Pentium 4m


Anbefalte innlegg

Jeg tenkte å prøve meg på Gentoo, men er litt usikker på CFLAGS. Følgende er anbefalt for Pentium 4 på www.freehackers.org (safe flags):

 

CHOST="i686-pc-linux-gnu"

CFLAGS="-march=pentium4 -O3 -pipe -fomit-frame-pointer"

CXXFLAGS="-march=pentium4 -O3 -pipe -fomit-frame-pointer"

 

Er det noe spesielt jeg må tenke på når jeg har Pentium 4m? Har også lest at 02 skal være bedre, og Os enda bedre, fordi filene blir mindre.

 

Leste også et sted at -fomit-frame-pointer var "evil". Men så vidt jeg forstod lot den prosessoren takle flere tall om gangen, og gir slik en generell ytelsesøkning.

 

Er også forberedt på litt trøbbel med xfree86. Er det noe problem å bruke en config-fil fra en annen distro? F.eks. Fedora?

 

Takker for kommentarer og tips!

Lenke til kommentar
Videoannonse
Annonse

Han mener nok -funroll-loops, den gjør at filen blir større men kan kjøre raskere, det er litt selvmotsigende å ha -funroll-loops og -Os samtidig. Selv har jeg endt på "-march=pentium4 -O2 -pipe -fomit-frame-pointer -ffast-math" og har ikke fått noen problemer med dette.

Endret av drall
Lenke til kommentar
Han mener nok -funroll-loops, den gjør at filen blir større men kan kjøre raskere, det er litt selvmotsigende å ha -funroll-loops og -Os samtidig.

derfor får man som regel warning på dette under compile ;)

Jeg har baade -O3 og -funroll-loops .. aldri vaert noe problem :p

 

Men er det bare teit det? Selvmotsigende?

 

-O2 og -O3, hva er forskjellen paa disse O'ene? H0rt at om du tar et h0yt tall blir det ustabilt...

Lenke til kommentar
[quote name='anderlin' date='27/11/2003 : 17:30'] Her fant jeg en side med mye info: [url="http://gcc.gnu.org/onlinedocs/gcc-3.3.2/gcc/Optimize-Options.html#Optimize%20Options"]http://gcc.gnu.org/onlinedocs/gcc-3.3.2/gc...imize%20Options[/url]
Men, igjen, har det noe å si at jeg har P4[b]m[/b]? [/quote]
Vel, P4m er veeeldig kjapt! Det er iallfall rett! Min laptop suser avgaarde i en utrolig fart, spesiellt kompile tar liten tid i forhold til hva jeg er vant med.

Men det er jo bare testet med mine flags, ogsaa har jeg stage 1 gentoo install da ;)

Men jeg har ingen spesielle p4m flags, de jeg brukte funka kjempebra - selv om du sikkert kan tweake mer...

Jeg har ogsaa lagt til enhanced speedstep i 2.6 kernelen, en teknologoi du finner i P4m prosessorene.
Lenke til kommentar

Hvis det er en bærbar skal du ikke se bortifra at det lønner seg å optimisere i forhold til plass, dvs -Os. -fomit-frame-pointer har nok også noe for seg, siden frame pointer kun er nyttig ved debugging, og siste gdb (6.0) klarer seg uten så vidt jeg forsto.

Endret av A_N_K
Lenke til kommentar
-Os? Den gir smaa filer? -O2 st0rre, -O3 enda st0rre?

Ifølge info gcc er -Os -O2 med ekstra optimiseringer for mindre executables, noe som burde lønne seg på (de fleste) bærbare. Dette blir hypotetisk dog, siden jeg aldri har sett noen ekstensive sammenligninger av -Os og de andre flaggene. Men på coyotegulch.com er det lagt ut en analyse av CFLAGS gjort ved hjelp av acovea, litt synd at -Os er utelatt.

 

Sannsynligvis kan -O3 gi større filer enn -O2, jeg tror den skrur på inlining og opprulling av løkker.

Lenke til kommentar
Velvel.. Fart > Plass for min del :).. Dessuten gidder jeg ikke aa kompilere alt paa ny.

 

Men det med optimaliseringer er et interessant tema. Selv om folkene som er "mot" det, kanskje har rett i at det er lite du egentlig tjener :)

Tingen er vel at mindre executables kan bety høyere fart, hvis harddisken ikke er superrask, eller du har lite cache, begrenset minnebåndbredde etc. Du kan jo teste det tidligere nevnte analyseverktøyet acovea?

Lenke til kommentar
Jeg har baade -O3 og -funroll-loops .. aldri vaert noe problem :p

Men er det bare teit det? Selvmotsigende?

 

-O2 og -O3, hva er forskjellen paa disse O'ene? H0rt at om du tar et h0yt tall blir det ustabilt...

Det jeg mente var at -funroll-loops gjerne ofrer filstørrelse for ytelse, mens -Os gjør det litt omvendt. -O3 lager størst filer av alle, men når de er lastet, skal de stort sett kunne kjøres noe raskere enn -O2 og -Os (om du har nok minne da). -O3 tar også lengre tid å kompilere. Bare for å gjøre det klart for de som ikke forstod det er slime mold en liten tøysekopp. -O4 og over fins ikke og -fomit-instructions... tenk litt over hva det kan tolkes som. :D

 

Det er godt mulig at det lønner seg å bruke -Os på et system med treig harddisk og/eller lite minne. Jeg regner med at pentium4 m støtter sse2, da skulle det ikke være noe problem å bruke -march=pentium4.

 

-fomit-frame-pointer frigjør en register på x86 prosessorer, mot at muligheten for debugging blir dårligere.

 

Etter min erfaring er det som regel lite vits å sette mange flagg utover dette, siden standardene i gcc som regel er bra.

 

man gcc forklarer alle cflagene.

Lenke til kommentar

Takk for alle svar! Jeg tenker jeg går for

 

CFLAGS="-march=pentium4 -Os -pipe -fomit-frame-pointer"

 

Med sine 4000 RPM tror jeg det er harddisken som er flaskehalsen i maskinen.

 

Kan ikke si annet enn at jeg gleder meg til å legge inn Gentoo! Tror nesten jeg skal prøve stage 1 også... :-)

Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
  • Hvem er aktive   0 medlemmer

    • Ingen innloggede medlemmer aktive
×
×
  • Opprett ny...