Gentoo Forums
Gentoo Forums
Gentoo Forums
Quick Search: in
Aumentare la prestazioni con l'aiuto delle cflags
View unanswered posts
View posts from last 24 hours
View posts from last 7 days

Goto page Previous  1, 2, 3, 4  Next  
Reply to topic    Gentoo Forums Forum Index Forum italiano (Italian)
View previous topic :: View next topic  
Author Message
djinnZ
Advocate
Advocate


Joined: 02 Nov 2006
Posts: 4831
Location: somewhere in L.O.S.

PostPosted: Tue Jan 08, 2008 11:27 am    Post subject: Reply with quote

cloc3 wrote:
emerge dovrebbe selezionare automaticamente la flag senza l'intervento esplicito dell'utente

emerge no gli automake si, lo so per esperienza personale con mplayer (e ci ho messo un pezzo ad accorgermene che anche se la disabilitavo nel make.conf la usava ugualmente su una precedente versione, probabilmente dipendeva da binutils perchè in seguito ho disabilitato --as-need e -O1 per gcc e binutils a causa di problemi del preprocessore).
_________________
scita et risus abundant in ore stultorum sed etiam semper severi insani sunt:wink:
mala tempora currunt...mater stultorum semper pregna est :evil:
Murpy'sLaw:If anything can go wrong, it will - O'Toole's Corollary:Murphy was an optimist :wink:
Back to top
View user's profile Send private message
Flameeyes
Retired Dev
Retired Dev


Joined: 30 Mar 2005
Posts: 187
Location: Dublin, Ireland

PostPosted: Tue Jan 08, 2008 9:06 pm    Post subject: Reply with quote

Hai scelto proprio un pacchetto che _non_ usa automake (o autoconf per quel che importa)... MPlayer ha un suo proprio build system.
_________________
You want to know what I'm working on right now? Just follow my blog.
Back to top
View user's profile Send private message
rete27
Tux's lil' helper
Tux's lil' helper


Joined: 26 Feb 2007
Posts: 86

PostPosted: Fri Jan 11, 2008 7:28 am    Post subject: Reply with quote

dopo aver provato un po di cflags ho capito 2 cose :
1) come mi ha detto Ic3M4n il gioco non vale la candela...
2) fib.c non puo essere usato per testare le "prestazioni" o meglio il risultato in termini di secondi non è un indice affidabile da punto di vista prestazionale.

Dalle mie prove ho imparato a usare al meglio le use e ho capito che è meglio avere un sistema un po meno "tirato" ma affidabile perché è inutile riuscire a compilare il tempi record ma poi avere degli ebuild che in fase di compilazione generano errore facendo fermare il compilatore.
_________________
Al mondo ci sono 10 tipi di persone quelle che conoscono il sistema binario e quelle che non lo conoscono...
Back to top
View user's profile Send private message
Cazzantonio
Bodhisattva
Bodhisattva


Joined: 20 Mar 2004
Posts: 4489
Location: Somewere around the world

PostPosted: Fri Jan 11, 2008 12:19 pm    Post subject: Reply with quote

Visto il consiglio recente di Flameeyes ho provato a ricompilare tutto con --as-needed. Contrariamente a quanto sempre sostenuto (che le cflags/ldflags personalizzate con cambiano granché) si nota un miglioramento sensibile (nei tempi di avvio) con --as-needed. Sono abbastanza contento di questa cosa visto che la macchina è vecchiotta e ogni botta di vita è sempre gradita.
_________________
Any man's death diminishes me, because I am involved in mankind, and therefore never send to know for whom the bell tolls; it tolls for thee
-John Donne
Back to top
View user's profile Send private message
Kernel78
Moderator
Moderator


Joined: 24 Jun 2005
Posts: 3652

PostPosted: Fri Jan 11, 2008 12:48 pm    Post subject: Reply with quote

Cazzantonio wrote:
Visto il consiglio recente di Flameeyes ho provato a ricompilare tutto con --as-needed. Contrariamente a quanto sempre sostenuto (che le cflags/ldflags personalizzate con cambiano granché) si nota un miglioramento sensibile (nei tempi di avvio) con --as-needed. Sono abbastanza contento di questa cosa visto che la macchina è vecchiotta e ogni botta di vita è sempre gradita.

giusto per curiosità come hai fatto ? Ti sei limitato a modificare il make.conf e dare un emerge -e world o hai fatto altro ?
_________________
Le tre grandi virtù di un programmatore: pigrizia, impazienza e arroganza. (Larry Wall).
Prima di postare un file togli i commenti con
Code:
grep -vE '(^[[:space:]]*($|(#|!|;|//)))'
Back to top
View user's profile Send private message
MeMyselfAndI
l33t
l33t


Joined: 15 Nov 2005
Posts: 784
Location: Between the monitor and the chair

PostPosted: Fri Jan 11, 2008 2:16 pm    Post subject: Reply with quote

io ho fatto cosi' e lo uso da un po senza problemi.
Back to top
View user's profile Send private message
Cazzantonio
Bodhisattva
Bodhisattva


Joined: 20 Mar 2004
Posts: 4489
Location: Somewere around the world

PostPosted: Fri Jan 11, 2008 2:23 pm    Post subject: Reply with quote

Kernel78 wrote:
giusto per curiosità come hai fatto ? Ti sei limitato a modificare il make.conf e dare un emerge -e world o hai fatto altro ?

Per generare la lista dei pacchetti:
Code:
emerge -pe world |grep ebuild|cut -d"]" -f2|sed -e 's/ /=/'|cut -d" " -f1 >pacchetti

Per compilare
Code:
nohup emerge -1 `cat pacchetti` &

emerge -e world è sempre rischioso perché se ti si interrompe rischi di dover ripartire daccapo...
Code:
LDFLAGS="-Wl,-O1 -Wl,--enable-new-dtags -Wl,--as-needed -s"

Mi si era interrotta la compilazione di gcc per qualcosa riguardo alle librerie fortran, tuttavia l'ho ricompilato per ultimo ed è andato liscio.
_________________
Any man's death diminishes me, because I am involved in mankind, and therefore never send to know for whom the bell tolls; it tolls for thee
-John Donne


Last edited by Cazzantonio on Fri Jan 11, 2008 5:15 pm; edited 1 time in total
Back to top
View user's profile Send private message
bandreabis
Advocate
Advocate


Joined: 18 Feb 2005
Posts: 2414
Location: イタリアのロディで

PostPosted: Fri Jan 11, 2008 2:33 pm    Post subject: Reply with quote

Cazzantonio wrote:
Kernel78 wrote:
giusto per curiosità come hai fatto ? Ti sei limitato a modificare il make.conf e dare un emerge -e world o hai fatto altro ?

Per generare la lista dei pacchetti:
Code:
emerge -pe world |grep ebuild|cut -d"]" -f2|sed -e 's/ /=/'|cut -d" " -f1 >pacchetti

Per compilare
Code:
nohup emerge -1 `cat pacchetti`

emerge -e world è sempre rischioso perché se ti si interrompe rischi di dover ripartire daccapo...
Code:
LDFLAGS="-Wl,-O1 -Wl,--enable-new-dtags -Wl,--as-needed -s"

Mi si era interrotta la compilazione di gcc per qualcosa riguardo alle librerie fortran, tuttavia l'ho ricompilato per ultimo ed è andato liscio.


LDFLAG -O1 non centra con CFLAG -O2, giusto?
_________________
Il numero di post non fa di me un esperto! Anzi!
Back to top
View user's profile Send private message
Cazzantonio
Bodhisattva
Bodhisattva


Joined: 20 Mar 2004
Posts: 4489
Location: Somewere around the world

PostPosted: Fri Jan 11, 2008 3:13 pm    Post subject: Reply with quote

bandreabis wrote:
LDFLAG -O1 non centra con CFLAG -O2, giusto?
?? Più o meno come il governo con la piogga.
_________________
Any man's death diminishes me, because I am involved in mankind, and therefore never send to know for whom the bell tolls; it tolls for thee
-John Donne
Back to top
View user's profile Send private message
bandreabis
Advocate
Advocate


Joined: 18 Feb 2005
Posts: 2414
Location: イタリアのロディで

PostPosted: Fri Jan 11, 2008 4:03 pm    Post subject: Reply with quote

Cazzantonio wrote:
...
Per compilare
Code:
nohup emerge -1 `cat pacchetti`
...


Quote:
nohup emerge -1pv `cat pacchetti`
nohup: ignoring input and appending output to `nohup.out'
:?:
_________________
Il numero di post non fa di me un esperto! Anzi!
Back to top
View user's profile Send private message
Kernel78
Moderator
Moderator


Joined: 24 Jun 2005
Posts: 3652

PostPosted: Fri Jan 11, 2008 4:13 pm    Post subject: Reply with quote

bandreabis wrote:
Cazzantonio wrote:
...
Per compilare
Code:
nohup emerge -1 `cat pacchetti`
...


Quote:
nohup emerge -1pv `cat pacchetti`
nohup: ignoring input and appending output to `nohup.out'
:?:

non colgo il motivo della tua perplessità ...
_________________
Le tre grandi virtù di un programmatore: pigrizia, impazienza e arroganza. (Larry Wall).
Prima di postare un file togli i commenti con
Code:
grep -vE '(^[[:space:]]*($|(#|!|;|//)))'
Back to top
View user's profile Send private message
bandreabis
Advocate
Advocate


Joined: 18 Feb 2005
Posts: 2414
Location: イタリアのロディで

PostPosted: Fri Jan 11, 2008 4:25 pm    Post subject: Reply with quote

Kernel78 wrote:
bandreabis wrote:
Cazzantonio wrote:
...
Per compilare
Code:
nohup emerge -1 `cat pacchetti`
...


Quote:
nohup emerge -1pv `cat pacchetti`
nohup: ignoring input and appending output to `nohup.out'
:?:

non colgo il motivo della tua perplessità ...


Cioè: è tutto normale? Bene. :P
_________________
Il numero di post non fa di me un esperto! Anzi!
Back to top
View user's profile Send private message
Kernel78
Moderator
Moderator


Joined: 24 Jun 2005
Posts: 3652

PostPosted: Fri Jan 11, 2008 4:36 pm    Post subject: Reply with quote

bandreabis wrote:
Cioè: è tutto normale? Bene. :P

detto in soldoni nohup mette il processo in background (detto proprio alla grezza, in realtà fa ben di più ...)
_________________
Le tre grandi virtù di un programmatore: pigrizia, impazienza e arroganza. (Larry Wall).
Prima di postare un file togli i commenti con
Code:
grep -vE '(^[[:space:]]*($|(#|!|;|//)))'
Back to top
View user's profile Send private message
Cazzantonio
Bodhisattva
Bodhisattva


Joined: 20 Mar 2004
Posts: 4489
Location: Somewere around the world

PostPosted: Fri Jan 11, 2008 5:13 pm    Post subject: Reply with quote

Dovresti documentarti sui programmi prima di usarli... se nohup avesse cancellato il tuo hd?
almeno dare "man nohup" per capire cosa fa...

P.S. perché non quotare solo la parte di testo rilevante? Quotare tutto un post crea quelle fastidiose "pidamidi di citazioni" che rendono il tutto più illeggibile
_________________
Any man's death diminishes me, because I am involved in mankind, and therefore never send to know for whom the bell tolls; it tolls for thee
-John Donne
Back to top
View user's profile Send private message
Flameeyes
Retired Dev
Retired Dev


Joined: 30 Mar 2005
Posts: 187
Location: Dublin, Ireland

PostPosted: Fri Jan 11, 2008 5:26 pm    Post subject: Reply with quote

--enable-new-dtags non serve assolutamente a nulla su Gentoo: i nuovi dtags sono abilitati forzosamente in binutils da una cosa come almeno almeno tre anni.

E sì, --as-needed dà una sferzata all'avvio ;) Non si noterà molta differenza durante l'esecuzione, ma l'avvio migliora parecchio specie per quelle applicazioni (per esempio quelle di DE complessi come KDE e GNOME) che avrebbero una ventina di librerie presenti che non vengono utilizzate.
_________________
You want to know what I'm working on right now? Just follow my blog.
Back to top
View user's profile Send private message
djinnZ
Advocate
Advocate


Joined: 02 Nov 2006
Posts: 4831
Location: somewhere in L.O.S.

PostPosted: Fri Jan 11, 2008 5:41 pm    Post subject: Reply with quote

sono su hardened e gcc 3.x (quindi la cosa va presa con le pinze da voialtri, potrebbe essere vero il contrario) ma -O1 si è mostrata assai più disastrosa di --as-need, in particolare con i problemi (a sorpresa) del compilatore (gcc1).
Quelle ldflags su binutils e gcc le eviterei, al massimo solo --as-need.

@flameyes: già, bacio ancora la terra sotto i piedi tuoi che la hai introdotta e di drittzt che mi ha indirizzato sulla tua pagina di chiarimenti.

L'unico dubbio che ancora mi rimane è se abilitare l'ottimizzazione per sse.
_________________
scita et risus abundant in ore stultorum sed etiam semper severi insani sunt:wink:
mala tempora currunt...mater stultorum semper pregna est :evil:
Murpy'sLaw:If anything can go wrong, it will - O'Toole's Corollary:Murphy was an optimist :wink:


Last edited by djinnZ on Sat Jan 12, 2008 10:43 am; edited 2 times in total
Back to top
View user's profile Send private message
Onip
Advocate
Advocate


Joined: 02 Sep 2004
Posts: 2912
Location: Parma (Italy)

PostPosted: Fri Jan 11, 2008 5:56 pm    Post subject: Reply with quote

Alcuni consigli da uno che --as-needed ce l'ha da più di un anno.

ewo sviluppato da uno dei 'nostri'. Utile per chi sta emergendo il mondo.
Bug che segnala pacchetti problematici con --as-needed.
bashrc-ng utile (con il modulo perpackage) per poter impostare delle eccezioni alle LDFLAGS per i packages di cui sopra. E' in via di sviluppo l'equivalente per la verisione nuova di bashrc, sviluppata dal nostro mod !equilibrium.

Saluti.
_________________
Linux Registered User n. 373835

Titus Lucretius Carus, De Rerum Natura - Tantum religio potuit suadere malorum
Back to top
View user's profile Send private message
Cazzantonio
Bodhisattva
Bodhisattva


Joined: 20 Mar 2004
Posts: 4489
Location: Somewere around the world

PostPosted: Sat Jan 12, 2008 10:55 am    Post subject: Reply with quote

Flameeyes wrote:
E sì, --as-needed dà una sferzata all'avvio ;)
Si è proprio una cosa sensibile. Finora mi sono sempre tenuto lontano dal mondo dell'ottimizzazione (a parte pochi esperimenti iniziali), tuttavia --as-needed è una delle poche flag che migliorano sensibilmente l'uso del pc.
_________________
Any man's death diminishes me, because I am involved in mankind, and therefore never send to know for whom the bell tolls; it tolls for thee
-John Donne
Back to top
View user's profile Send private message
Flameeyes
Retired Dev
Retired Dev


Joined: 30 Mar 2005
Posts: 187
Location: Dublin, Ireland

PostPosted: Sat Jan 12, 2008 5:07 pm    Post subject: Reply with quote

-Wl,-O1 non dovrebbe causare alcun problema in realtà, considerando che viene solo usata per le librerie condivise.. non dipende comunque dalla versione di gcc ma di binutils.
_________________
You want to know what I'm working on right now? Just follow my blog.
Back to top
View user's profile Send private message
xveilsidex
Guru
Guru


Joined: 27 Dec 2005
Posts: 370
Location: Bari

PostPosted: Sat Jan 12, 2008 6:16 pm    Post subject: Reply with quote

Flameeyes wrote:
-Wl,-O1 non dovrebbe causare alcun problema in realtà, considerando che viene solo usata per le librerie condivise.. non dipende comunque dalla versione di gcc ma di binutils.

io ho queste cflags e ldflags sul mio centrino duo 1.66 ghz

CFLAGS="-O2 -march=pentium-m -msse3 -pipe -fomit-frame-pointer "
LDFLAGS="-Wl,-O1 -Wl,--sort-common -Wl,--enable-new-dtags -Wl,-zdynsort -Wl,--as-needed"

in teoria sarebbe meglio avere solo queste?

CFLAGS="-O2 -march=pentium-m -msse3"
LDFLAGS="-O1 -Wl,--as-needed"
Back to top
View user's profile Send private message
djinnZ
Advocate
Advocate


Joined: 02 Nov 2006
Posts: 4831
Location: somewhere in L.O.S.

PostPosted: Sat Jan 12, 2008 6:34 pm    Post subject: Reply with quote

Le cflags vanno bene sono le ldflags, una è ridondante come leggi sopra le altre due mi pare che siano ancora sconsigliate.

@flameyes: veramente pensavo che dipendesse dal codice interno di gcc (stack smash, errori e crash non riproducibili) patch hardening comprese
_________________
scita et risus abundant in ore stultorum sed etiam semper severi insani sunt:wink:
mala tempora currunt...mater stultorum semper pregna est :evil:
Murpy'sLaw:If anything can go wrong, it will - O'Toole's Corollary:Murphy was an optimist :wink:
Back to top
View user's profile Send private message
xveilsidex
Guru
Guru


Joined: 27 Dec 2005
Posts: 370
Location: Bari

PostPosted: Sun Jan 13, 2008 11:27 am    Post subject: Reply with quote

djinnZ wrote:
Le cflags vanno bene sono le ldflags, una è ridondante come leggi sopra le altre due mi pare che siano ancora sconsigliate.

@flameyes: veramente pensavo che dipendesse dal codice interno di gcc (stack smash, errori e crash non riproducibili) patch hardening comprese

forse ricordo male ma anche formit-frame-pointer non da grandi vantaggi! cmq con il mio centrino duo ( ke non è un core due duo ) posso mettere come march nocona ??
Back to top
View user's profile Send private message
riverdragon
Veteran
Veteran


Joined: 14 Sep 2006
Posts: 1269
Location: Verona

PostPosted: Sun Jan 13, 2008 11:57 am    Post subject: Reply with quote

Con il Core Duo se lavori a 32 bit è meglio mettere -march=prescott e da quando avrai gcc-4.2 installato aggiungere -mtune=generic. Sul mio core duo:
Code:
CFLAGS="-O2 -march=prescott -pipe -fomit-frame-pointer -fforce-addr -mfpmath=sse"
-mfpmath=sse potrebbe essere ridondante, è necessario sui pentium-m successivi al core banias (come dothan e sonoma).
Back to top
View user's profile Send private message
xveilsidex
Guru
Guru


Joined: 27 Dec 2005
Posts: 370
Location: Bari

PostPosted: Sun Jan 13, 2008 12:55 pm    Post subject: Reply with quote

riverdragon wrote:
Con il Core Duo se lavori a 32 bit è meglio mettere -march=prescott e da quando avrai gcc-4.2 installato aggiungere -mtune=generic. Sul mio core duo:
Code:
CFLAGS="-O2 -march=prescott -pipe -fomit-frame-pointer -fforce-addr -mfpmath=sse"
-mfpmath=sse potrebbe essere ridondante, è necessario sui pentium-m successivi al core banias (come dothan e sonoma).


Si lavoro a 32 bit cmq Non sono pienamente d'accordo nel mettere prescott sul centrino-duo o core-duo xkè i prescott utilizzavano un architettura piu' vekkia (netburst) rispetto a quella core. cmq il mio è un yonoah x questo volevo sapere se era compatibile con la flag nocona oppure continuare ad utilizzare la dicitura pentium-m ( o forse la prescott come dici tu ) xkè con le gcc-4.2 bisognera' mettere -mtune=generic ? (x il fatto che fonderanno nel kernel l'architettura x86_32 x86_64?) ma se non metti la flag -msse3 questa non viene attivata o è sempre attivata automaticamente?
Back to top
View user's profile Send private message
Flameeyes
Retired Dev
Retired Dev


Joined: 30 Mar 2005
Posts: 187
Location: Dublin, Ireland

PostPosted: Sun Jan 13, 2008 1:01 pm    Post subject: Reply with quote

-fforce-address può creare problemi con certe applicazioni specie se mangiano registri a colazione pranzo e cena (FFmpeg, Mplayer, xine).

-fomit-frame-pointer è più o meno necessario su x86, perché libera un registro, e x86 ne ha veramente pochi. Senza -fomit-frame-pointer, per esempio, è impossibile compilare alcune parti di xine, mentre altre parti di FFmpeg (ottimizzazioni SSE o MMX) sarebbero saltate.

Per quanto riguarda -mfpmath=sse... ormai _dovrebbe_ essere stabile, ma ha il problema di cambiare il formato delle variabili in virgola mobile. Certo software (ma sinceramente non ho un esempio sotto mano) non gradisce questo perché assume che x86 == math i387. Usare a proprio rischio e pericolo.

djinnZ, le LDFLAGS sono flag per il linker. GCC non fa nulla al linker se non invocarlo, quindi no, non centra assolutamente nulla col codice interno di GCC.

xveilsidex, se _non_ è un Core2 Duo, allora non è un nocona visto che non ha il supporto 64-bit.
_________________
You want to know what I'm working on right now? Just follow my blog.
Back to top
View user's profile Send private message
Display posts from previous:   
Reply to topic    Gentoo Forums Forum Index Forum italiano (Italian) All times are GMT
Goto page Previous  1, 2, 3, 4  Next
Page 2 of 4

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum