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 |