[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: Flag di compilazione



Premoli, Roberto [ITPPG/1010] wrote:
Preso da mania di ricompilazione ottimizzata,
ho installato apt-build, e, strano a dirsi, funziona.

Ho dato un bel

man gcc

ed ho visto una MAREA di opzioni, parametri, flag di
compilazione....
Volevo sceglierne qualcuno da passare al tool di
configurazione di apt-build (all'inizio ho scelto solo
livello di compilazione medio, e cpu pentium2) ma,
francamente, temo di scegliere opzioni/parametri/valori
inutili o perfino dannosi.

In poche parole, sapete cosigliarmi un howto su quali
parametri scegliere?
In giro si trovano varie parametrizzazioni,
(es: -march=pentium -O3 -pipe -fomit-frame-pointer)
ma NON spiegano perche' e cosa fa il singolo parametro,
che al di la' di termini evidenti ( es -march=i686)
sono totalmente, almeno a me, oscuri
(es: -Wall, -maccumulate-outgoing-args, etc)

se guardi in lista negli ultimi due mesi si è parlato abbondantemente di questo argomento

in ogni caso nel file /etc/apt/apt-build.conf puoi indicare varie cose; il mio contiene le seguneti righe:

build-dir = /mnt/mandrake/src/apt-build/build
repository-dir = /var/cache/apt-build/repository
Olevel = -O2
march = -march=athlon-tbird
mcpu = -mcpu=athlon-tbird
options = -mcpu=athlon-tbird -march=athlon-tbird -pipe -fomit-frame-pointer

build-dir <- indica la directory in cui scaricare e compilare i sorgenti (prendi una partizione con libero almeno 5 Mb per evitare problemi di spazio)
repository-dir <- indica dove piazzare i .deb una volta compilati
Olevel <- indica il livello di ottimizzazione
march e mcpu <- indicano il tuo processore
options <- indica le varie opzioni da passare alla compilazione di ogni file

non esiste un numero di parametri migliori di altri, questo perché ogni "sorgente/configurazione hardware/utilizzo della propra box" può avere esigenze diverse e quindi per raggiungere il tuo scopo magari devi dare dei parametri che possono sembrare andare contro i risultati che vuoi ottenere. Dipende da cosa compili e per che macchina lo compili (quanta e quale ram ha, quanto hd libero, velocità hd, ...)

Per esempio se devi compilare qualcosa e vuoi ottimizzare per avere dei sorgenti il più veloci possibili in esecuzione devi fare due conti su quanto grossi sono i binari che ottieni, più grossi sono e più ram occupano e più tempo occorre per caricarli in memoria. Vedere quanti processi hai in media caricati in memoria quando lo esegui, ... Per esempio se non hai molta ram ed i binari sono molto grossi, allora può convenire compilare per ottenere binari più piccoli (e non più con istruzioni singole più veloci), in questo modo occupi meno ram (magari per questo eviti swap su disco che rallentano) e ottieni un programma che sulla tua macchina viene eseguito più velocemente.

La cosa basilare secondo me è:
1) compilare soltanto alcune cose che ti permettono di avere un aumento di prestazioni generali (come le glibc, il kernel, ...) 2) compilare programmi che usi molto e non devono attendere di continuo degli I/O (se rendi più veloce un editor di testo, ti si carica si più velocemente, ma poi è limitato dalla tua lentezza nei battere i tasti) 3) compilare per il tuo processore (o per lo meno per pentium), senza guardare molto le ottimizzazioni esasperate: alle volte queste di fanno guadagnare solo delle frazioni di secondo ...

Ciao
Davide



--
Linux User: 302090: http://counter.li.org
Prodotti consigliati:
Sistema operativo: Debian: http://www.it.debian.org
Strumenti per l'ufficio: OpenOffice.org: http://it.openoffice.org
Database: PostgreSQL: http://www.postgres.org
Browser: FireFox: http://texturizer.net/firefox
Client di posta: Thunderbird: http://texturizer.net/thunderbird
Enciclopedia: wikipedia: http://it.wikipedia.org
--
Non autorizzo la memorizzazione del mio indirizzo di posta a chi usa
outlook: non voglio essere invaso da spam



--
Email.it, the professional e-mail, gratis per te: http://www.email.it/f

Sponsor:
Vuoi imparare a posizionare il tuo sito web nei motori di ricerca?
* Partecipa al Workshop Nazionale SEO Italia 2004 - clicca qui
Clicca qui: http://adv.email.it/cgi-bin/foclick.cgi?mid'98&d=8-10



Reply to: