Gentoo Archives: gentoo-commits

From: "Davide Cendron (scen)" <scen@g.o>
To: gentoo-commits@l.g.o
Subject: [gentoo-commits] gentoo commit in xml/htdocs/doc/it: gcc-optimization.xml
Date: Wed, 12 Sep 2007 20:45:42
Message-Id: E1IVYyj-000120-CU@stork.gentoo.org
1 scen 07/09/12 20:38:29
2
3 Modified: gcc-optimization.xml
4 Log:
5 Version 1.6, revision 1.9 of EN CVS
6
7 Revision Changes Path
8 1.4 xml/htdocs/doc/it/gcc-optimization.xml
9
10 file : http://sources.gentoo.org/viewcvs.py/gentoo/xml/htdocs/doc/it/gcc-optimization.xml?rev=1.4&view=markup
11 plain: http://sources.gentoo.org/viewcvs.py/gentoo/xml/htdocs/doc/it/gcc-optimization.xml?rev=1.4&content-type=text/plain
12 diff : http://sources.gentoo.org/viewcvs.py/gentoo/xml/htdocs/doc/it/gcc-optimization.xml?r1=1.3&r2=1.4
13
14 Index: gcc-optimization.xml
15 ===================================================================
16 RCS file: /var/cvsroot/gentoo/xml/htdocs/doc/it/gcc-optimization.xml,v
17 retrieving revision 1.3
18 retrieving revision 1.4
19 diff -u -r1.3 -r1.4
20 --- gcc-optimization.xml 29 Jul 2007 22:39:10 -0000 1.3
21 +++ gcc-optimization.xml 12 Sep 2007 20:38:28 -0000 1.4
22 @@ -1,6 +1,6 @@
23 <?xml version='1.0' encoding='UTF-8'?>
24 <!DOCTYPE guide SYSTEM "/dtd/guide.dtd">
25 -<!-- $Header: /var/cvsroot/gentoo/xml/htdocs/doc/it/gcc-optimization.xml,v 1.3 2007/07/29 22:39:10 scen Exp $ -->
26 +<!-- $Header: /var/cvsroot/gentoo/xml/htdocs/doc/it/gcc-optimization.xml,v 1.4 2007/09/12 20:38:28 scen Exp $ -->
27
28 <guide link="/doc/it/gcc-optimization.xml" lang="it">
29 <title>Guida all'Ottimizzazione della Compilazione</title>
30 @@ -22,8 +22,8 @@
31 <!-- See http://creativecommons.org/licenses/by-sa/2.5 -->
32 <license/>
33
34 -<version>1.4</version>
35 -<date>2007-07-28</date>
36 +<version>1.6</version>
37 +<date>2007-08-12</date>
38
39 <chapter>
40 <title>Introduzione</title>
41 @@ -102,7 +102,7 @@
42 veloce il proprio sistema o renderanno i propri binari più piccoli per occupare
43 meno spazio su disco. Aggiungere più e più flag nel tentativo di ottimizzare (o
44 "personalizzare" in modo estremo) il proprio sistema è una ricetta sicura per il
45 -fallimento, e si arriverà ad un punto di ottenere solamente risultati peggiori.
46 +fallimento. C'è un punto nel quale si raggiungeranno risultati peggiori.
47 </p>
48
49 <p>
50 @@ -183,6 +183,8 @@
51 Sebbene la variabile CHOST in <path>/etc/make.conf</path> specifichi
52 l'architettura generale usata, dovrebbe essere usata anche <c>-march</c> in modo
53 che i programmi possano essere ottimizzati per il proprio specifico processore.
54 +Per i processori x86 e x86-64 (fra gli altri) si dovrebbe utilizzare la flag
55 +<c>-march</c>.
56 </p>
57
58 <p>
59 @@ -213,28 +215,47 @@
60 </pre>
61
62 <p>
63 -Sono anche disponibili le flag <c>-mcpu</c> e <c>-mtune</c>. Ognuna di queste
64 -dovrebbe essere usata <e>solo</e> quando non è disponibile nessuna opzione
65 -<c>-march</c>. Qual'è la differenza tra di loro? <c>-march</c> è molto più
66 -specifica circa quali funzionalità del processore saranno usate quando si
67 -compila il codice; è la scelta migliore. <c>-mcpu</c> produrrà codice molto più
68 -generico meno ottimizzato per la propria macchina. <c>-mtune</c> è perfino più
69 -generico di v<c>-mcpu</c>. Ogni volta che sia possibile, usare <c>-march</c>.
70 -Per alcune architetture meno comuni come PowerPC, Sparc ed Alpha, dev'essere
71 -usato <c>-mcpu</c>.
72 +Sono anche disponibili le flag <c>-mcpu</c> e <c>-mtune</c>. Queste sono
73 +solitamente usate solo quando non è disponibile nessuna opzione<c>-march</c>;
74 +certe architetture di processori possono richiedere <c>-mtune</c> o persino
75 +<c>-mcpu</c>. Sfortunatamente, il comportamento di <c>gcc</c> non è molto
76 +consistente con il modo in cui si comporta ogni flag da una architettura alla
77 +successiva.
78 +</p>
79 +
80 +<p>
81 +Nelle CPU x86 e x86-64, <c>-march</c> genererà codice specifico per quella CPU
82 +usando tutti gli insiemi di istruzioni disponibili e la corretta ABI; non avrà
83 +retrocompatibilità per CPU più vecchie/differenti. Se non si ha bisogno di
84 +eseguire codice su nessun altro sistema al di fuori di quello su cui si sta
85 +eseguendo Gentoo, continuare ad usare <c>-march</c>. Si potrebbe considerare
86 +l'utilizzo di <c>-mtune</c> solo quando si ha bisogno di generare codice per
87 +vecchie CPU come ad esempio i386 e i486. <c>-mtune</c> produce codice più
88 +generico di <c>-march</c>; sebbene ottimizzi il codice per una certa CPU, non
89 +tiene conto insiemi di istruzioni e ABI. Non utilizzare <c>-mtune</c> su sistemi
90 +x86 o x86-64, perchè è deprecato per quelle architetture.
91 +</p>
92 +
93 +<p>
94 +Solo per le CPU diverse da x86/x86-64 (come Sparc, Alpha, e PowerPC) può essere
95 +necessario <c>-mtune</c> o <c>-mcpu</c> invece di <c>-march</c>. Su queste
96 +architetture, <c>-mtune</c>/<c>-mcpu</c> si comporteranno talvolta proprio come
97 +<c>-march</c> (su x86/x86-64) . . . ma con un differente nome di flag. Ancora,
98 +il comportamento di <c>gcc</c> e la denominazione delle flag semplicemente non è
99 +consistente attraverso le architetture, quindi assicurarsi di controllare il
100 +<uri link="http://gcc.gnu.org/onlinedocs/gcc-4.1.2/gcc/Submodel-Options.html#Submodel-Options">manuale</uri>
101 +di <c>gcc</c> per determinare quali utilizzare per il proprio sistema.
102 </p>
103
104 <note>
105 -Per le impostazioni di <c>-march</c> più suggerite, si prega leggere il capitolo
106 +Per le impostazioni di <c>-march</c>/<c>-mtune</c>/<c>-mcpu</c> più suggerite,
107 +si prega leggere il capitolo
108 5 del <uri link="/doc/it/handbook/">Manuale di Installazione Gentoo</uri>
109 appropriato per la propria architettura. Leggere anche la lista di <uri
110 link="http://gcc.gnu.org/onlinedocs/gcc-4.1.2/gcc/Submodel-Options.html#Submodel-Options">
111 opzioni specifiche per architettura</uri> (in inglese, ndt) del manuale di
112 <c>gcc</c>, così come spiegazioni più dettagliate a proposito delle differenze
113 -tra <c>-march</c>, <c>-mcpu</c>, e <c>-mtune</c>. Ciò è piuttosto d'aiuto per
114 -determinare quale impostazione di <c>-march</c> bisognerebbe usare, specialmente
115 -per alcune architetture, come x86, <c>-mcpu</c> è deprecato e dovrebbe invece
116 -essere utilizzato <c>-mtune</c>.
117 +tra <c>-march</c>, <c>-mcpu</c>, e <c>-mtune</c>.
118 </note>
119
120 </body>
121 @@ -272,8 +293,8 @@
122
123 <ul>
124 <li>
125 - <c>-O0</c>: Qesto livello (che è contrassegnato dalla lettera "O" seguita da
126 - uno zero) disattiva interamente l'ottimizzazione ed è l'opzione
127 + <c>-O0</c>: Questo livello (che è contrassegnato dalla lettera "O" seguita
128 + da uno zero) disattiva interamente l'ottimizzazione ed è l'opzione
129 predefinita se nessun livello di <c>-O</c> è specificato nelle CFLAG o nelle
130 CXXFLAGS. Il proprio codice non sarà ottimizzato; ciò non è solitamente
131 desiderato
132 @@ -287,7 +308,7 @@
133 <li>
134 <c>-O2</c>: Un passo avanti da <c>-O1</c>. Questo è il livello di
135 ottimizzazione <e>raccomandato</e> a meno che non si abbiano necessità
136 - speciali. <c>-O2</c> attiverà poche altre flag in aggiunta a quelle attivati
137 + speciali. <c>-O2</c> attiverà poche altre flag in aggiunta a quelli attivati
138 da <c>-O1</c>. Con <c>-O2</c>, il compilatore tenterà di incrementare le
139 prestazioni del codice senza comprometterne le dimensioni, e senza impiegare
140 troppo tempo di compilazione.
141 @@ -310,11 +331,10 @@
142 <li>
143 <c>-Os</c>: Questo livello ottimizzerà il proprio codice per le dimensioni.
144 Attiva tutte le opzioni di <c>-O2</c> che non incrementano la dimensione del
145 - codice generato. Può essere utile per macchine che hanno spazio su disco
146 + codice generato. E' utile per macchine che hanno spazio su disco
147 estremamente limitato e/o hanno CPU con cache di piccole dimensioni.
148 - Tuttavia, può causare più di qualche problema, per questo motivo viene
149 - filtrata da molti degli ebuild presenti nel tree di Portage. Usare
150 - <c>-Os</c> non è raccomandato.
151 + Comunque, può causare alcuni problemi, il che spiega perchè è filtrato da
152 + molte delle ebuild nel tree. Usare <c>-Os</c> non è raccomandato.
153 </li>
154 </ul>
155
156 @@ -323,7 +343,7 @@
157 raccomandato. Se le compilazioni dei pacchetti causano errori, assicurarsi di
158 non utilizzare <c>-O3</c>. Come opzione di riserva, provare ad impostare le
159 proprie CFLAGS e CXXFLAGS ad un livello di ottimizzazione più basso, come
160 -<c>-O1</c> o perfino <c>-O2 -g2 -ggdb</c> (per riportare errori e verificare
161 +<c>-O1</c> o persino <c>-O0 -g2 -ggdb</c> (per riportare errori e trovare
162 possibili problemi) e ricompilare il pacchetto.
163 </p>
164
165 @@ -359,11 +379,10 @@
166 <p>
167 In particolare, rende più difficile risolvere problemi di applicazioni scritte
168 in Java, benchè Java non sia l'unico codice interessato dall'utilizzo di questa
169 -flag. Così mentre la flag può aiutare, può anche rendere il debug più
170 -difficile; i backtrace saranno totalmente inutilizzabili. Tuttavia, se non si ha
171 -intenzione di fare molto debug e non si ha aggiunto nessun'altra CFLAG relativa
172 -al debug come <c>-ggdb</c> (e non si ha intenzione di installare pacchetti con
173 -la USE flag <c>debug</c>), allora provare a usare <c>-fomit-frame-pointer</c>.
174 +flag. Così finchè la flag può aiutare, può anche rendere il debug più difficile;
175 +i backtrace in particolare saranno inutili. Comunque, Se non si ha intenzione di
176 +fare molto debug e non si ha aggiunto nessun'altra CFLAG relativa al debug come
177 +<c>-ggdb</c>, allora provare a usare <c>-fomit-frame-pointer</c>.
178 </p>
179
180 <impo>
181 @@ -457,8 +476,8 @@
182 </p>
183
184 <p>
185 -Non c'è bisogno di usare queste flag globalmente in CFLAGS o CXXFLAGS, in quanto
186 -danneggeranno solamente la prestazioni. Ti faranno sentire come se tu avessi
187 +Non c'è bisogno di usare queste flag globalmente in CFLAGS o CXXFLAGS.
188 +Danneggeranno solamente la prestazioni. Ti faranno sentire come se tu avessi
189 un sistema ad alte prestazioni che fa girare l'ultima tecnologia, ma non faranno
190 altro che gonfiare il tuo codice e rendere i tuoi bug marcati come INVALID o
191 WONTFIX.
192 @@ -520,7 +539,7 @@
193 </p>
194
195 <p>
196 -Il filtraggio/sostituzione delle flag è fatto in molti degli ebuild nel Portage
197 +Il filtraggio/sostituzione delle flag è fatto in molte degli ebuild nel Portage
198 tree. E' fatto solitamente perchè i pacchetti falliscono la compilazione a certi
199 livelli di <c>-O</c>, o quando il codice sorgente è troppo sensibile per ogni
200 flag addizionale da usare. L'ebuild filtrerà qualcuna o tutte le CFLAGS e le
201 @@ -556,7 +575,7 @@
202 </p>
203
204 <p>
205 -Si continuerà ad incappare in problemi quando si compila un pacchetto con flag
206 +Si Continuerà ad incappare in problemi quando si compila un pacchetto con flag
207 inaccettabili. Quando si riportano i propri problemi su Bugzilla, le flag usate
208 in <path>/etc/make.conf</path> saranno prontamente visibili e verrà detto di
209 ricompilare senza queste flag. Si può evitare il problema di ricompilare non
210 @@ -571,13 +590,13 @@
211 <body>
212
213 <p>
214 -Non usarle. si può aver sentito che possono velocizzare i tempi di caricamento
215 -delle applicazioni o ridurre la dimensione dei binari, ma in realtà, le LDFLAGS
216 -sono destinate il più delle volte a non far più funzionare le proprie
217 -applicazioni. Non sono supportate, e i propri bug potrebbero venire marcati
218 -INVALID se si riportano errori con pacchetti compilati con le LDFLAGS. Come
219 -minimo bisognerà ricompilare tutti i pacchetti affetti dal problema senza
220 -impostare le LDFLAGS.
221 +Probabilmente non si dovrebbe impostarle. Si può aver sentito che possono
222 +velocizzare i tempi di caricamento delle applicazioni o ridurre la dimensione
223 +dei binari, ma possono anche far cessare di funzionare interamente le proprie
224 +applicazioni. Non sono ufficialmente supportate, e i propri bug potrebbero
225 +venire marcati INVALID se si riportano errori con pacchetti compilati con le
226 +LDFLAGS. Come minimo bisognerà ricompilare tutti i pacchetti affetti dal
227 +problema senza impostare le LDFLAGS.
228 </p>
229
230 </body>
231 @@ -599,16 +618,16 @@
232 </uri>(ndt in inglese)
233 </li>
234 <li>
235 - Capitolo 5 dei <uri link="/doc/it/handbook/">Manuale di Installazione
236 + Capitolo 5 dei <uri link="/doc/it/handbook/">Manuali di Installazione
237 Gentoo</uri>
238 </li>
239 <li><c>man make.conf</c></li>
240 <li><uri link="http://it.wikipedia.org">Wikipedia</uri></li>
241 <li>
242 - <uri link="http://www.coyotegulch.com/products/acovea/">Acovea</uri>(in
243 - inglese, ndt), una suite di benchmark e test che può essere utile per
244 - determinare come differenti flag del compilatore interagiscono e interessano
245 - la generazione del codice, benchè i suoi suggerimenti sul codice non sono
246 + <uri link="http://www.coyotegulch.com/products/acovea/">Acovea</uri>(ndt in
247 + inglese), una suite di benchmark e test che può essere utile per determinare
248 + come differenti flag del compilatore interagiscono e interessano la
249 + generazione del codice, benchè i suoi suggerimenti sul codice non sono
250 appropriati per l'uso sull'intero sistema. E' disponibile in Portage:
251 <c>emerge acovea</c>.
252 </li>
253
254
255
256 --
257 gentoo-commits@g.o mailing list