View previous topic :: View next topic |
Author |
Message |
Bialy Guru
Joined: 20 Mar 2006 Posts: 486
|
Posted: Thu Nov 08, 2007 6:54 pm Post subject: [SOLVED]Co w koncu wybrac? |
|
|
Od dluzszego czasu mecze sie z ustawieniem... CFLAGS
Uzywam FX-60 (x86_64) i jaki mam wybrac CFLAGS?:
- athlonk8 -msse3
- athlon64 -msse3
- athlonfx (nie pamietam czy trzeba dodac sse3).
CFLAG'sy te znalazlem na srtonie o gcc (pozniej podam jak nie zapomne - pod linksem trudno sie szuka).
Last edited by Bialy on Thu Nov 08, 2007 8:03 pm; edited 1 time in total |
|
Back to top |
|
|
SlashBeast Retired Dev
Joined: 23 May 2006 Posts: 2922
|
Posted: Thu Nov 08, 2007 7:21 pm Post subject: |
|
|
z mana gcc
Quote: | k8, opteron, athlon64, athlon-fx
AMD K8 core based CPUs with x86-64 instruction set support.
(This supersets MMX, SSE, SSE2, 3dNOW!, enhanced 3dNOW! and
64-bit instruction set extensions.)
|
ergo, jak masz procesor klasy k8 z obsługą SSE3 to dajesz np. march=k8 -msse3 + -O2 i -pipe np. Ja mam AMD X2 i flagi
Code: | CFLAGS="-march=k8 -msse3 -Os -pipe" |
|
|
Back to top |
|
|
Bialy Guru
Joined: 20 Mar 2006 Posts: 486
|
Posted: Thu Nov 08, 2007 7:42 pm Post subject: |
|
|
Czyli mach=athlon-fx -msse3
Z tego co sie orientuje Os daje lzejszy kod wynikowy. Duzo wiecej miejsca masz? |
|
Back to top |
|
|
SlashBeast Retired Dev
Joined: 23 May 2006 Posts: 2922
|
Posted: Thu Nov 08, 2007 7:51 pm Post subject: |
|
|
Zjada również mniej ramu, a przy 64bitach to dla mnie ważne, mniej leci w swapa jak dużo kombinuję. tak na oko z 60-kilku Mega wine-9999 ma 53M. Os uzywam tylko po to, by oszczedzić troche ramu. |
|
Back to top |
|
|
Yatmai Veteran
Joined: 12 Nov 2005 Posts: 1501 Location: Kraków
|
Posted: Thu Nov 08, 2007 8:47 pm Post subject: |
|
|
Kiedyś słyszałem opinię, że paradoksalnie Os jest szybsze od O2 czy O3, z tego powodu, iż poprzez mniejszy kod pozwala załadować więcej instrukcji do kaszy procka... Tylko nie wiem na ile to prawda, ale brzmi fajnie _________________ Desktop: [Ath64 X2 2GB DDR2 GF76GT] [amd64] [2.6.29-gentoo] [nVidia] [KDE 3.5.10]
Lapek: [HP nc6000] [i686] [2.6.29-ARCH] [ati-open] [KDE 3.5.10] |
|
Back to top |
|
|
unK l33t
Joined: 06 Feb 2007 Posts: 769
|
Posted: Thu Nov 08, 2007 9:30 pm Post subject: |
|
|
Yatmai wrote: | Kiedyś słyszałem opinię, że paradoksalnie Os jest szybsze od O2 czy O3, z tego powodu, iż poprzez mniejszy kod pozwala załadować więcej instrukcji do kaszy procka... Tylko nie wiem na ile to prawda, ale brzmi fajnie |
Nie za bardzo Sam byłem zaciekawiony taką opinią, ale po testach wyszło, że -Os daje wolniejszy system niż -O2 (chociażby xorg jest wolniejszy), a zyski w używaniu pamięci ram są rzędu kilku, maksymalnie kilkunastu megabajtów (na cały system), to się zwyczajnie nie opłaca.
Aktualnie używam:
Code: | CFLAGS="-O2 -march=native -pipe -fomit-frame-pointer -fno-ident -funroll-loops -ftracer" |
Mam z tym skompilowany cały system (+ Firefox i OpenOffice, bo wyedytowałem ebuildy, żeby nie filtrowały tych flag) i nie zauważyłem żadnego dziwnego zachowania jakiejkolwiek aplikacji, o segfaultach nie wspominając, a niektóre programy działają nieco szybciej. Dodam tylko, że skoro -funroll-loops powiększa kod wynikowy, to teoretycznie powinno mi zżerać więcej pamięci ram niż w przypadku systemu skompilowanego bez tej flagi, a nie zauważyłem żadnej różnicy. |
|
Back to top |
|
|
SlashBeast Retired Dev
Joined: 23 May 2006 Posts: 2922
|
Posted: Fri Nov 09, 2007 10:45 am Post subject: |
|
|
Mógł byś prosze opisać jakoś swoje 3 ostatnie flagi? Generalnie chodzi mi oto jakie bajery dają tj. korzyści itp.
edit: wyczytałem, ze dwie z nich mogą produkować szybszy kod, ale dlaczego masz:
Quote: | -fno-ident
Ignore the #ident directive.
|
|
|
Back to top |
|
|
unK l33t
Joined: 06 Feb 2007 Posts: 769
|
Posted: Fri Nov 09, 2007 6:25 pm Post subject: |
|
|
SlashBeast wrote: | edit: wyczytałem, ze dwie z nich mogą produkować szybszy kod, ale dlaczego masz:
Quote: | -fno-ident
Ignore the #ident directive.
|
|
moocha wrote: | -fno-ident is the opposite of -fident (it turns it off). -fident is enabled by default. It's not a code optimization flag. -fno-ident just causes GCC not to inset those stupid useless repeated version strings caused by autogenerated #ident directives into the object files it produces. Doesn't affect the behavior of any program at all, but it saves a few hundred bytes for every executable and library on the system. It adds up to a few megabytes on a Gentoo desktop install, and it definitely doesn't hurt anything. |
|
|
Back to top |
|
|
|