1 |
nimiux 14/03/22 20:17:43 |
2 |
|
3 |
Modified: gcc-optimization.xml |
4 |
Log: |
5 |
Link to wiki article translated to spanish |
6 |
|
7 |
Revision Changes Path |
8 |
1.15 xml/htdocs/doc/es/gcc-optimization.xml |
9 |
|
10 |
file : http://sources.gentoo.org/viewvc.cgi/gentoo/xml/htdocs/doc/es/gcc-optimization.xml?rev=1.15&view=markup |
11 |
plain: http://sources.gentoo.org/viewvc.cgi/gentoo/xml/htdocs/doc/es/gcc-optimization.xml?rev=1.15&content-type=text/plain |
12 |
diff : http://sources.gentoo.org/viewvc.cgi/gentoo/xml/htdocs/doc/es/gcc-optimization.xml?r1=1.14&r2=1.15 |
13 |
|
14 |
Index: gcc-optimization.xml |
15 |
=================================================================== |
16 |
RCS file: /var/cvsroot/gentoo/xml/htdocs/doc/es/gcc-optimization.xml,v |
17 |
retrieving revision 1.14 |
18 |
retrieving revision 1.15 |
19 |
diff -u -r1.14 -r1.15 |
20 |
--- gcc-optimization.xml 28 Jul 2013 15:14:28 -0000 1.14 |
21 |
+++ gcc-optimization.xml 22 Mar 2014 20:17:43 -0000 1.15 |
22 |
@@ -1,10 +1,10 @@ |
23 |
<?xml version='1.0' encoding='UTF-8'?> |
24 |
|
25 |
-<!-- $Header: /var/cvsroot/gentoo/xml/htdocs/doc/es/gcc-optimization.xml,v 1.14 2013/07/28 15:14:28 nimiux Exp $ --> |
26 |
+<!-- $Header: /var/cvsroot/gentoo/xml/htdocs/doc/es/gcc-optimization.xml,v 1.15 2014/03/22 20:17:43 nimiux Exp $ --> |
27 |
|
28 |
<!DOCTYPE guide SYSTEM "/dtd/guide.dtd"> |
29 |
|
30 |
-<guide disclaimer="obsolete" redirect="https://wiki.gentoo.org/wiki/GCC_optimization" lang="es"> |
31 |
+<guide disclaimer="obsolete" redirect="https://wiki.gentoo.org/wiki/GCC_optimization/es" lang="es"> |
32 |
|
33 |
<title>Guía de Compilación Optimizada</title> |
34 |
|
35 |
@@ -25,9 +25,9 @@ |
36 |
</author> |
37 |
|
38 |
<abstract> |
39 |
-Esta guía proporciona una introducción a la compilación optimizada |
40 |
-usando CFLAGS y CXXFLAGS seguras y sanas. Al tiempo que se describe la |
41 |
-teoria detrás de la optimización en general. |
42 |
+Esta guía ofrece una introducción al código compilado de forma |
43 |
+óptima usando CFLAGS y CXXFLAGS seguras y sanas. También describe |
44 |
+la teoría detrás de la optimización en general. |
45 |
</abstract> |
46 |
|
47 |
<!-- The content of this document is licensed under the CC-BY-SA license --> |
48 |
@@ -46,7 +46,7 @@ |
49 |
|
50 |
<p> |
51 |
CFLAGS y CXXFLAGS son variables de entorno usadas para decirle a la |
52 |
-Colección de Compiladores GNU, <c>gcc</c>, que tipo de parámetros usar |
53 |
+Colección de Compiladores GNU, <c>gcc</c>, que tipo de opciones usar |
54 |
cuando compila código fuente. Las CFLAGS son para código escrito en C, |
55 |
mientras que CXXFLAGS son para código escrito en C++. |
56 |
</p> |
57 |
@@ -59,6 +59,7 @@ |
58 |
Cuaderno de GNU gcc </uri> mantiene una completa lista de opciones |
59 |
disponibles y sus propósitos. |
60 |
</p> |
61 |
+ |
62 |
</body> |
63 |
</section> |
64 |
|
65 |
@@ -67,16 +68,16 @@ |
66 |
<body> |
67 |
|
68 |
<p> |
69 |
-CFLAGS y CXXFLAGS pueden ser usados de dos maneras. La primera, |
70 |
-pueden usarse por programa con los Makefiles generados por |
71 |
+CFLAGS y CXXFLAGS se pueden usar de dos formas. La primera, |
72 |
+por programa con los ficheros Makefile generados por |
73 |
automake. |
74 |
</p> |
75 |
|
76 |
<p> |
77 |
-Sin embargo, esto no debería usarse cuando instalamos paquetes |
78 |
-encontrados en el árbol del Portage. En su lugar, establezca sus |
79 |
+Sin embargo, esto no debería hacerse cuando instalamos paquetes |
80 |
+que se encuentran en el árbol Portage. En su lugar, establezca sus |
81 |
CFLAGS y CXXFLAGS en <path> /etc/portage/make.conf</path>. De |
82 |
-esta manera todos los paquetes se compilaran con las opciones que |
83 |
+esta manera todos los paquetes se compilarán con las opciones que |
84 |
especifique. |
85 |
</p> |
86 |
|
87 |
@@ -87,41 +88,43 @@ |
88 |
|
89 |
<p> |
90 |
Como puede ver, CXXFLAGS se establece para usar todas las opciones |
91 |
-presentes en CFLAGS. Esto es lo que deseara casi seguro. No debería |
92 |
-necesitar especificar opciones adicionales en CXXFLAGS nunca. |
93 |
+presentes en CFLAGS. Casi seguro que es lo que se desea. Normalmente |
94 |
+no necesitará especificar opciones adicionales en CXXFLAGS. |
95 |
</p> |
96 |
+ |
97 |
</body> |
98 |
</section> |
99 |
|
100 |
<section> |
101 |
-<title>Conceptos generales</title> |
102 |
+<title>Confusiones</title> |
103 |
<body> |
104 |
|
105 |
<p> |
106 |
-Mientras CFLAGS y CXXFLAGS pueden ser muy efectivos tomando el código |
107 |
-fuente para producir binarios pequeños y/o rápidos, también pueden |
108 |
+Aunque CFLAGS y CXXFLAGS pueden ser muy efectivos tomando el código |
109 |
+fuente para producir binarios pequeños o rápidos, también pueden |
110 |
deteriorar la función de su código, inflar su tamaño, ralentizar su |
111 |
-ejecución, o incluso causar errores de compilación. |
112 |
+ejecución, ¡O incluso causar errores de compilación! |
113 |
</p> |
114 |
|
115 |
<p> |
116 |
CFLAGS no es una solución mágica; no hará que su sistema corra más |
117 |
rápido o sus binarios sean más pequeños automáticamente. Añadir más y |
118 |
-más parámetros en un intento de optimización (o "rizar") su sistema es una |
119 |
-receta segura para el fallo. Hay un punto en el cual permanecerá dando |
120 |
-vueltas. |
121 |
+más opciones en un intento de optimización (o "apretar") su sistema |
122 |
+es una receta segura para fracasar. Hay un punto en el cual |
123 |
+alcanzará resultados de peor calidad. |
124 |
</p> |
125 |
|
126 |
<p> |
127 |
-A pesar de la jactancia que pueden encontrar en Internet, unas |
128 |
-variables CFLAGS y CXXFLAGS agresivas están más cerca de dañar sus |
129 |
+A pesar de las recomendaciones que se pueden encontrar en Internet, |
130 |
+unas variables CFLAGS y CXXFLAGS agresivas están más cerca de dañar sus |
131 |
programas que de hacerles algún bien. Recuerde que la razón para la |
132 |
-cual existen los parámetros en primer lugar es porque están diseñadas |
133 |
+cual existen las opciones en primer lugar es porque están diseñadas |
134 |
para usarse en sitios específicos para propósitos específicos. ¡Solo |
135 |
porque una CFLAG particular sea buena para un fragmento de código no |
136 |
significa que esté diseñada para compilar todo lo que quiera instalar |
137 |
-en su máquina¡. |
138 |
+en su máquina! |
139 |
</p> |
140 |
+ |
141 |
</body> |
142 |
</section> |
143 |
|
144 |
@@ -131,44 +134,46 @@ |
145 |
|
146 |
<p> |
147 |
Ahora que está advertido de algunos de los riesgos involucrados, |
148 |
-echemos un vistazo a algo sano, optimizaciones seguras para su |
149 |
-ordenador. Esto le será útil y lo agradecerán los desarrolladores la |
150 |
-próxima vez que reporte un problema en <uri |
151 |
+echemos un vistazo a algunas optimizaciones sanas y seguras para su |
152 |
+computadora. Esto le será útil y los desarrolladores lo agradecerán |
153 |
+la próxima vez que informe de un problema en <uri |
154 |
link="http://bugs.gentoo.org">Bugzilla</uri>. (Los desarrolladores |
155 |
suelen pedir que recompile un paquete con los CFLAGS mínimos para ver |
156 |
-si el problema persiste. Recuerde que los parámetros agresivos pueden |
157 |
+si el problema persiste. Recuerde que las opciones agresivas pueden |
158 |
arruinar el código.) |
159 |
</p> |
160 |
+ |
161 |
</body> |
162 |
</section> |
163 |
</chapter> |
164 |
|
165 |
<chapter> |
166 |
-<title>Optimizando</title> |
167 |
+<title>Optimizar</title> |
168 |
<section> |
169 |
<title>Lo básico</title> |
170 |
<body> |
171 |
|
172 |
<p> |
173 |
-La meta detrás de usar CFLAGS y CXXFLAGS es crear código específico |
174 |
-para su sistema; debería funcionar perfectamente mientra es ligero y |
175 |
+El objetivo de usar CFLAGS y CXXFLAGS es crear código específico |
176 |
+para su sistema; debería funcionar perfectamente y ser ligero y |
177 |
rápido, si es posible. Algunas veces estás condiciones son mutuamente |
178 |
-excluyentes, pero nosotros jugaremos con combinaciones que sabemos que |
179 |
-funcionan bien. Idealmente, las mejores están disponibles para cada |
180 |
-arquitectura de CPU. Mencionaremos más adelante los parámetros |
181 |
-agresivos para que se sepa con cuales tener cuidado. No discutiremos |
182 |
-cada opción listada en el manual de <c>gcc</c> (hay cientos), pero |
183 |
-hablaremos de las básicas, los más comunes. |
184 |
+excluyentes, pero nosotros trabajaremos con combinaciones que sabemos |
185 |
+que funcionan bien. Idealmente, las mejores están disponibles para cada |
186 |
+arquitectura de CPU. Mencionaremos más adelante ajustes más |
187 |
+agresivos para que se sepa con cuales debe tener cuidado. No |
188 |
+discutiremos cada opción listada en el manual de <c>GCC</c> (hay |
189 |
+cientos), pero hablaremos de las básicas, las más comunes. |
190 |
</p> |
191 |
|
192 |
<note> |
193 |
-Si no está seguro qué hace el parámetro, revise el capítulo relevante |
194 |
+Si no está seguro qué hace la opción, revise el capítulo relevante |
195 |
en el <uri |
196 |
link="http://gcc.gnu.org/onlinedocs/gcc-4.4.4/gcc/Optimize-Options.html#Optimize-Options"> |
197 |
manual de gcc</uri> y si aún continúa atascado, pruebe Google, o |
198 |
revise las <uri link="http://gcc.gnu.org/lists.html">listas de |
199 |
correo</uri> de <c>gcc</c>. |
200 |
</note> |
201 |
+ |
202 |
</body> |
203 |
</section> |
204 |
|
205 |
@@ -178,14 +183,14 @@ |
206 |
|
207 |
<p> |
208 |
La primera y más importante opción es <c>-march</c>. Esta le dice al |
209 |
-compilador que código debería producirse para su <uri |
210 |
+compilador que código debería producir para su <uri |
211 |
link="http://en.wikipedia.org/wiki/Microarchitecture">arquitectura</uri> |
212 |
de procesador (o <e>arch</e>); dice que debería producir código para |
213 |
un cierto tipo de CPU. Diferentes CPUs tienen diferentes |
214 |
características, soportan diferentes conjunto de instrucciones y |
215 |
-tienen diferentes formas de ejecutar código. El parámetro |
216 |
-<c>-march</c> mandará al compilador producir código específico para su |
217 |
-CPU, tomando en cuenta todas sus capacidades, características, |
218 |
+tienen diferentes formas de ejecutar código. La opción |
219 |
+<c>-march</c> indicará al compilador que produzca código específico |
220 |
+para su CPU, tomando en cuenta todas sus capacidades, características, |
221 |
conjuntos de instrucciones, caprichos y demás. |
222 |
</p> |
223 |
|
224 |
@@ -194,19 +199,19 @@ |
225 |
especifica la arquitectura general usada, <c>-march</c> también se |
226 |
usa para que sus programas sean optimizados para su procesador |
227 |
específico. Las arquitecturas x86 y x86-64 (entre otras) también |
228 |
-deberían hacer uso del parámetro <c>-march</c>. |
229 |
+deberían hacer uso de la opción <c>-march</c>. |
230 |
</p> |
231 |
|
232 |
<p> |
233 |
¿Qué tipo de CPU tiene? Para averiguarlo, ejecute la siguiente orden: |
234 |
</p> |
235 |
|
236 |
-<pre caption="Examinando la información de la CPU"> |
237 |
+<pre caption="Examinar la información de la CPU"> |
238 |
$ <i>cat /proc/cpuinfo</i> |
239 |
</pre> |
240 |
|
241 |
<p> |
242 |
-Ahora veamos <c>-march</c> en acción. Este ejemplo es para un viejo |
243 |
+Ahora veamos <c>-march</c> en acción. Este ejemplo es para un antiguo |
244 |
Pentium III: |
245 |
</p> |
246 |
|
247 |
@@ -216,7 +221,7 @@ |
248 |
</pre> |
249 |
|
250 |
<p> |
251 |
-Aquí hay otro para una CPU de 64-bit AMD: |
252 |
+Aquí hay otro para una CPU AMD de 64 bits: |
253 |
</p> |
254 |
|
255 |
<pre caption="/etc/portage/make.conf: AMD:64"> |
256 |
@@ -227,8 +232,8 @@ |
257 |
<p> |
258 |
Si todavía no está seguro qué tipo de CPU tiene, tal vez quiera usar |
259 |
la opción <c>-march=native</c>. Al usarla, GCC detectará el procesador |
260 |
-y automáticamente usará las opciones apropiadas.<brite>Sin embargo, no |
261 |
-use esta opción si la intención es ¡compilar paquetes para un CPU |
262 |
+y automáticamente usará las opciones apropiadas.<brite>¡Sin embargo, |
263 |
+no use esta opción si la intención es ¡compilar paquetes para un CPU |
264 |
diferente!</brite> |
265 |
</p> |
266 |
|
267 |
@@ -236,48 +241,48 @@ |
268 |
De manera que, si está compilando paquetes en una computadora, pero |
269 |
piensa ejecutarlos en una computadora diferente (usando, por ejemplo, |
270 |
una computadora rápida para construir paquetes para una máquina más |
271 |
-vieja y lenta), entonces <e>no</e> use la opción |
272 |
+antigua y lenta), entonces <e>no</e> use la opción |
273 |
<c>-march=native</c>. La palabra "native" significa que el código |
274 |
producido podrá ejecutarse <e>solamente</e> en ese tipo de CPU. Las |
275 |
-aplicaciones construidas con <c>-march=native</c> en un CPU AMD Athlon |
276 |
-64 CPU no podrán ejecutarse en un CPU VIA C3 más antiguo. |
277 |
+aplicaciones construidas con <c>-march=native</c> en una CPU AMD Athlon |
278 |
+64 no podrán ejecutarse en una CPU VIA C3 más antigua. |
279 |
</p> |
280 |
|
281 |
<p> |
282 |
-También están disponibles los parámetros <c>-mcpu</c> y |
283 |
-<c>-mtune</c>. Cada uno de ellos <e>solo</e> se usará cuando no haya |
284 |
+También están disponibles las opciones <c>-mcpu</c> y |
285 |
+<c>-mtune</c>. Cada una de ellas <e>solo</e> se usará cuando no haya |
286 |
otra opción <c>-march</c> disponible. Ciertas arquitecturas de |
287 |
procesador pueden requerir <c>-mtune</c> o incluso de |
288 |
<c>-mcpu</c>. Desgraciadamente, el comportamiento de <c>gcc</c> no es |
289 |
-muy consistente con la manera que cada parámetro se comporta de una |
290 |
+muy consistente con la manera que cada opción se comporta de una |
291 |
arquitectura a la otra. |
292 |
</p> |
293 |
|
294 |
<p> |
295 |
-En CPUs x86 y x86-64, <c>-mcpu</c> generará código específico para esta |
296 |
-CPU usando todas sus instrucciones disponibles y el ABI correcto; no |
297 |
-tendrá compatibilidad hacia atrás para CPUs antiguas/diferentes. Si no |
298 |
+En CPUs x86 y x86-64, <c>-mcpu</c> se generará código específico para |
299 |
+esa CPU usando todas sus instrucciones disponibles y el ABI correcto; no |
300 |
+tendrá compatibilidad hacia atrás para CPUs antiguas o diferentes. Si no |
301 |
necesita ejecutar código en otro sitio que en el sistema que está |
302 |
-corriendo Gentoo, continúe para usar <c>-march</c>. Solo debería |
303 |
+corriendo Gentoo, continúe con <c>-march</c>. Solo debería |
304 |
considerar usar <c>-mtune</c> cuando necesite generar código para CPUs |
305 |
antiguas como i386 e i486. <c>-mtune </c> produce un código más |
306 |
-genérico que <c>-march</c>; aunque afinará el código para cierto CPU, |
307 |
+genérico que <c>-march</c>; aunque afinará el código para cierta CPU, |
308 |
no tendrá en cuenta los conjuntos de instrucciones disponibles y ABI. No |
309 |
-use <c>-mcpu</c> en sistemas x86 o x86-64, ya que está obsoleto para |
310 |
+use <c>-mcpu</c> en sistemas x86 o x86-64, ya que es obsoleto para |
311 |
estas arquitecturas. |
312 |
</p> |
313 |
|
314 |
<p> |
315 |
-Solo CPUs no x86/x86-64 (como Sparc, Alpha y PowerPC) pueden requerir |
316 |
-<c>-mtune </c> o <c>-mcpu</c> en lugar de <c>-march</c>. En estas |
317 |
-arquitecturas, <c>-mtune</c>/<c>-mcpu</c> algunas veces se comportará |
318 |
-como <c>-march</c> en (x86/x86-64) ... pero con un nombre distinto. De |
319 |
-nuevo, el comportamiento de <c>gcc</c> y los nombres de los parámetros |
320 |
-no es consistente entre arquitecturas, así que asegúrese de revisar el |
321 |
-<uri |
322 |
+Solo CPUs que no sean x86/x86-64 (como Sparc, Alpha y PowerPC) pueden |
323 |
+requerir <c>-mtune </c> o <c>-mcpu</c> en lugar de <c>-march</c>. |
324 |
+En estas arquitecturas, <c>-mtune</c>/<c>-mcpu</c> algunas veces se |
325 |
+comportará como <c>-march</c> en (x86/x86-64) ... pero con un nombre |
326 |
+distinto. De nuevo, el comportamiento de <c>gcc</c> y los nombres de |
327 |
+las opciones no es consistente entre arquitecturas, así que asegúrese |
328 |
+de revisar el <uri |
329 |
link="http://gcc.gnu.org/onlinedocs/gcc-4.4.4/gcc/Submodel-Options.html#Submodel-Options"> |
330 |
-manual</uri> de <c>gcc</c> para determinar cual de |
331 |
-ellos se ajusta a su sistema. |
332 |
+manual</uri> de <c>gcc</c> para determinar cual de ellas se ajusta a |
333 |
+su sistema. |
334 |
</p> |
335 |
|
336 |
<note> |
337 |
@@ -291,6 +296,7 @@ |
338 |
explicaciones más detalladas sobre las diferencias entre |
339 |
<c>-march</c>, <c>-mcpu</c>, y <c>-mtune</c>. |
340 |
</note> |
341 |
+ |
342 |
</body> |
343 |
</section> |
344 |
|
345 |
@@ -299,10 +305,10 @@ |
346 |
<body> |
347 |
|
348 |
<p> |
349 |
-Lo siguiente es la variable <c>-O</c>. Controla el total de niveles de |
350 |
-optimización. Hace que la compilación de código tome algo más de |
351 |
-tiempo, y puede tomar mucha más memoria, especialmente al incrementar |
352 |
-el nivel de optimización. |
353 |
+Lo siguiente es la variable <c>-O</c>. Controla el nivel de |
354 |
+optimización de todo el código. Hace que la compilación de código |
355 |
+tome algo más de tiempo, y puede usar mucha más memoria, especialmente |
356 |
+al incrementar el nivel de optimización. |
357 |
</p> |
358 |
|
359 |
<p> |
360 |
@@ -312,13 +318,13 @@ |
361 |
</p> |
362 |
|
363 |
<p> |
364 |
-Con la excepción de <c>-O0</c>, la configuración de <c>-O</c> activa |
365 |
-varios parámetros adicionales, así que asegúrese de leer el capítulo |
366 |
+A excepción de <c>-O0</c>, la configuración de <c>-O</c> activa |
367 |
+varias opciones adicionales, así que asegúrese de leer el capítulo |
368 |
del manual de gcc en <uri |
369 |
link="http://gcc.gnu.org/onlinedocs/gcc-4.4.4/gcc/Optimize-Options.html#Optimize-Options"> |
370 |
-opciones de optimización</uri> para aprender cuales |
371 |
-parámetros se activan en cada nivel <c>-O</c>, así como algunas |
372 |
-explicaciones sobre lo que hacen. |
373 |
+opciones de optimización</uri> para aprender qué opciones se |
374 |
+activan en cada nivel <c>-O</c>, así como algunas explicaciones |
375 |
+sobre lo que hacen. |
376 |
</p> |
377 |
|
378 |
<p> |
379 |
@@ -330,7 +336,7 @@ |
380 |
<c>-O0</c>: Este nivel (la letra "O" seguida de un cero) |
381 |
desconecta por completo la optimización y es el predeterminado si |
382 |
no se especifica ningún nivel <c>-O</c> en CFLAGS o CXXFLAGS. El |
383 |
- código no será optimizado. Esto, normalmente, no es lo que se |
384 |
+ código no se optimizará. Esto, normalmente, no es lo que se |
385 |
desea. |
386 |
</li> |
387 |
<li> |
388 |
@@ -340,17 +346,17 @@ |
389 |
acabar el trabajo siempre. |
390 |
</li> |
391 |
<li> |
392 |
- <c>-O2</c>: Un paso por encima de <c>-O1</c>. Este es el nivel |
393 |
+ <c>-O2</c>: Un paso delante de <c>-O1</c>. Este es el nivel |
394 |
<e>recomendado</e> de optimización, a no ser que tenga necesidades |
395 |
- especiales. <c>-O2</c> activará unos pocos parámetros añadidos a |
396 |
- los que se activan con <c>-O1</c>. Con <c>-O2</c>, el compilador |
397 |
+ especiales. <c>-O2</c> activará algunas opciones añadidas a |
398 |
+ las que se activan con <c>-O1</c>. Con <c>-O2</c>, el compilador |
399 |
intentará aumentar el rendimiento del código sin comprometer el |
400 |
tamaño y sin tomar mucho más tiempo de compilación. |
401 |
</li> |
402 |
<li> |
403 |
- <c>-O3</c>: Este es el más alto nivel de optimización posible, y |
404 |
+ <c>-O3</c>: Este es el nivel más alto de optimización posible, y |
405 |
también el más arriesgado. Tomará muchísimo tiempo compilar su |
406 |
- código con esta opción, y de hecho, <e>no debería usarse a través de |
407 |
+ código con esta opción, y de hecho, <e>no debería usarse para |
408 |
todo el sistema con <c>gcc</c> 4.x</e>. El comportamiento de |
409 |
<c>gcc</c> ha cambiado significativamente desde la versión 3.x, |
410 |
donde con <c>-O3</c> se había demostrado producir código con |
411 |
@@ -381,6 +387,7 @@ |
412 |
como <c>-O1</c> o incluso <c>-O0 -g2 -ggdb</c> (para reportar errores |
413 |
y comprobar posibles problemas) y recompile el paquete. |
414 |
</p> |
415 |
+ |
416 |
</body> |
417 |
</section> |
418 |
|
419 |
@@ -389,13 +396,14 @@ |
420 |
<body> |
421 |
|
422 |
<p> |
423 |
-<c>-pipe</c> es un parámetro común. Realmente no tiene efecto sobre el |
424 |
+<c>-pipe</c> es una opción común. Realmente no tiene efecto sobre el |
425 |
código que se produce, pero hace que el proceso de compilación sea más |
426 |
rápido. Indica al compilador que use tuberías en lugar de archivos |
427 |
temporales durante los diferentes estados de compilación, lo cual usa |
428 |
más memoria. En sistemas con poca memoria, el proceso de gcc podría |
429 |
-ser terminado. En este caso no use este parámetro. |
430 |
+ser terminado. En este caso no use esta opción. |
431 |
</p> |
432 |
+ |
433 |
</body> |
434 |
</section> |
435 |
|
436 |
@@ -404,34 +412,37 @@ |
437 |
<body> |
438 |
|
439 |
<p> |
440 |
-Esta es un parámetro muy común diseñada para reducir el tamaño del |
441 |
-código generado. Está activado para todos los niveles de <c>-O</c> |
442 |
-(excepto <c>-O0</c>) en arquitecturas donde no interfiera con el |
443 |
-depurado (como x86-64), pero puede hacer falta activarlo uno mismo, |
444 |
-añadiéndolo a sus parámetros. Aunque el manual de GNU <c>gcc</c> no |
445 |
-especifica todas las arquitecturas en las que está activado al usar |
446 |
-<c>-O</c>, hay que activarlo explícitamente en un x86. Sin embargo, |
447 |
-usando este parámetro hará que la depuración sea de dura a imposible. |
448 |
+Esta es una opción muy común diseñada para reducir el tamaño del |
449 |
+código generado. Está activada para todos los niveles de <c>-O</c> |
450 |
+(excepto <c>-O0</c>) en arquitecturas donde no interfiera con la |
451 |
+depuración (como x86-64), pero puede que haga falta activarla |
452 |
+añadiéndola a sus opciones. Aunque el manual de GNU <c>gcc</c> no |
453 |
+especifica todas las arquitecturas en las que está activada al usar |
454 |
+<c>-O</c>, hay que activarla explícitamente en un x86. Sin embargo, |
455 |
+al usar esta opción la depuración se convierta en difícil o incluso |
456 |
+imposible. |
457 |
</p> |
458 |
|
459 |
<p> |
460 |
-En particular, provoca que localizar problemas en aplicaciones |
461 |
+En particular, provoca que la localización de problemas en aplicaciones |
462 |
escritas en Java sea mucho más complicada, aunque Java no es el único |
463 |
-código afectado al usar este parámetro. Así, aunque este parámetro |
464 |
-puede ayudar, el depurado será duro; los "backtraces" en particular |
465 |
-serán inútiles. Sin embargo, si no planea hacer muchas depuraciones y |
466 |
-no tiene añadida ninguna otra CFLAG relacionada con la depuración como |
467 |
-<c>-ggdb</c> (y no está instalando paquetes con la variable USE |
468 |
-<c>debug</c>), entonces intente usar <c>-fomit-frame-pointer</c>. |
469 |
+código afectado al usar esta opción. Así, aunque esta opción |
470 |
+puede ayudar, la depuración será complicada; los "backtraces" en |
471 |
+particular no servirán de mucho. Sin embargo, si no planea hacer muchas |
472 |
+depuraciones y no tiene añadida ninguna otra CFLAG relacionada con la |
473 |
+depuración como <c>-ggdb</c> (y no está instalando paquetes con la |
474 |
+variable USE <c>debug</c>), entonces intente usar |
475 |
+<c>-fomit-frame-pointer</c>. |
476 |
</p> |
477 |
|
478 |
<impo> |
479 |
-<e>No</e> combine <c>-fomit-frame-pointer</c> con el parámetro de |
480 |
-nombre similar <c>-momit- leaf-frame-pointer</c>. El uso de este |
481 |
-último está desaconsejado, ya que <c>-fomit-frame-pointer</c> ya hace |
482 |
-el trabajo apropiado. Es más, <c>-momit-leaf-frame-pointer</c> ha |
483 |
-demostrado que impacta negativamente en el rendimiento del código. |
484 |
+<e>No</e> combine <c>-fomit-frame-pointer</c> con la opción de |
485 |
+nombre similar <c>-momit- leaf-frame-pointer</c>. No se aconseja |
486 |
+la utilización de esta última, ya que <c>-fomit-frame-pointer</c> |
487 |
+ya hace el trabajo apropiado. Es más, <c>-momit-leaf-frame-pointer</c> |
488 |
+ha demostrado que impacta negativamente en el rendimiento del código. |
489 |
</impo> |
490 |
+ |
491 |
</body> |
492 |
</section> |
493 |
|
494 |
@@ -440,7 +451,7 @@ |
495 |
<body> |
496 |
|
497 |
<p> |
498 |
-Estos parámetros activan los conjuntos de instrucciones <uri |
499 |
+Estas opciones activan los conjuntos de instrucciones <uri |
500 |
link="http://es.wikipedia.org/wiki/Streaming_SIMD_Extensions">SSE</uri>, |
501 |
<uri link="http://es.wikipedia.org/wiki/SSE2">SSE2</uri>, <uri |
502 |
link="http://es.wikipedia.org/wiki/SSSE3">SSE3</uri>, <uri |
503 |
@@ -449,37 +460,37 @@ |
504 |
arquitecturas x86-64. Son útiles principalmente en multimedia, juegos |
505 |
y otras tareas intensivas de computación en punto flotante, aunque |
506 |
también contienen muchos otros realces matemáticos. Estos conjuntos de |
507 |
-instrucciones se encuentran en las más modernas CPUs. |
508 |
+instrucciones se encuentran en las CPUs más modernas. |
509 |
</p> |
510 |
|
511 |
<impo> |
512 |
-Asegúrese de verificar si su CPU los soporta ejecutando <c>cat |
513 |
+Asegúrese de verificar si su CPU las soporta ejecutando <c>cat |
514 |
/proc/cpuinfo</c>. La salida incluirá cualquier conjunto de |
515 |
-instrucciones adicionales. Note que <b>pni</b> es solo otro nombre |
516 |
+instrucciones adicionales. Observe que <b>pni</b> es solo otro nombre |
517 |
para SSE3. |
518 |
</impo> |
519 |
|
520 |
<p> |
521 |
-Normalmente no necesita añadir ninguno de estos parámetros a |
522 |
+Normalmente no necesita añadir ninguna de estas opciones a |
523 |
<path>/etc/portage/make.conf </path> mientras esté usando la |
524 |
<c>-march</c> correcta (por ejemplo, <c>-march= nocona</c> implica |
525 |
-<c>-msse3</c>). Algunas excepciones notables son los CPUs nuevos VIA y |
526 |
-AMD64 que soportan instrucciones no implicadas por <c>-march</c> (como |
527 |
-SSE3). Para CPUs como estos necesitará habilitar parámetros |
528 |
+<c>-msse3</c>). Algunas excepciones notables son las nuevas CPUs VIA |
529 |
+y AMD64 que soportan instrucciones no implicadas por <c>-march</c> |
530 |
+(como SSE3). Para CPUs como estas necesitará habilitar opciones |
531 |
adicionales donde sea apropiado después de verificar la salida de |
532 |
<c>cat /proc/cpuinfo</c>. |
533 |
</p> |
534 |
|
535 |
<note> |
536 |
-Revise la <uri |
537 |
+Debería revisar la <uri |
538 |
link="http://gcc.gnu.org/onlinedocs/gcc-4.4.4/gcc/i386-and-x86_002d64-Options.html#i386-and-x86_002d64-Options"> |
539 |
-lista</uri> de parámetros |
540 |
-específicos para x86 y x86-64 para ver cuales de estos conjuntos de |
541 |
-instrucciones son activados por la propia configuración del tipo de |
542 |
-CPU. Si una instrucción está listada, entonces no necesita |
543 |
-especificarla; se activará al usar la configuración de <c>-march </c> |
544 |
-apropiada. |
545 |
+lista</uri> de opciones |
546 |
+específicas para x86 y x86-64 para ver cuales de estos conjuntos de |
547 |
+instrucciones los activa la propia configuración del tipo de |
548 |
+CPU. Si aparece una instrucción, entonces no necesita especificarla; |
549 |
+se activará al usar la configuración de <c>-march </c> apropiada. |
550 |
</note> |
551 |
+ |
552 |
</body> |
553 |
</section> |
554 |
</chapter> |
555 |
@@ -493,36 +504,38 @@ |
556 |
|
557 |
<p> |
558 |
No, solo <e>piensa</e> que lo hace porque alguien le ha convencido que |
559 |
-más parámetros es mejor. Los parámetros agresivos solo dañaran sus |
560 |
-aplicaciones cuando use un sistema completo. Incluso el <uri |
561 |
+es mejor utilizar el mayor número de opciones. Las opciones agresivas |
562 |
+solo dañarán sus aplicaciones cuando use un sistema completo. Incluso |
563 |
+el <uri |
564 |
link="http://gcc.gnu.org/onlinedocs/gcc-4.4.4/gcc/Optimize-Options.html#Optimize-Options"> |
565 |
manual</uri> de <c>gcc</c> dice que usar |
566 |
-<c>-funroll-loops </c> y <c>-funroll-all-loops</c> crea código más |
567 |
-grande y que corre más lento. Aún por algunas razones, estos dos |
568 |
-parámetros, junto con <c>-ffast-math</c>, <c>-fforce-mem</c>, |
569 |
+<c>-funroll-loops </c> y <c>-funroll-all-loops</c> crea código que |
570 |
+ocupa más espacio y que corre más lento. Aunque por alguna razón, |
571 |
+estas dos opciones, junto con <c>-ffast-math</c>, <c>-fforce-mem</c>, |
572 |
<c>-fforce-addr</c>, y similares, continúan siendo muy populares entre |
573 |
-pardillos que quieren saber más que nadie. |
574 |
+pardillos que creen saber más que nadie. |
575 |
</p> |
576 |
|
577 |
<p> |
578 |
-La verdad es que son parámetros peligrosamente agresivos. Eche un |
579 |
+La verdad es que son opciones peligrosamente agresivas. Eche un |
580 |
vistazo a los <uri link="http://forums.gentoo.org">Foros de |
581 |
Gentoo</uri> y <uri link="http://bugs.gentoo.org">Bugzilla</uri> para |
582 |
-ver que hacen estas variables: ¡nada bueno! |
583 |
+ver que hacen estas variables: ¡Nada bueno! |
584 |
</p> |
585 |
|
586 |
<p> |
587 |
-No necesita usar estos parámetros globalmente en CFLAGS o |
588 |
+No necesita usar estas opciones globalmente en CFLAGS o en |
589 |
CXXFLAGS. Solo dañarán el rendimiento. Puede sonarle como que tiene un |
590 |
sistema avanzado de alto rendimiento, pero no hará más que inflar su |
591 |
-código y marcar sus informes de errores como INVALID o WONTFIX. |
592 |
+código y marcar sus informes de error como INVALID o WONTFIX. |
593 |
</p> |
594 |
|
595 |
<p> |
596 |
-No necesita parámetros peligrosos como estas. <b>No las |
597 |
-use</b>. Quédese con las básicas: <c>-march</c>, <c>-O</c>, y |
598 |
+No necesita opciones peligrosas como estas. <b>No las |
599 |
+utilice</b>. Quédese con las básicas: <c>-march</c>, <c>-O</c>, y |
600 |
<c>-pipe</c>. |
601 |
</p> |
602 |
+ |
603 |
</body> |
604 |
</section> |
605 |
|
606 |
@@ -531,11 +544,11 @@ |
607 |
<body> |
608 |
|
609 |
<p> |
610 |
-Algunos usuarios alardean que obtienen mejor rendimiento usando |
611 |
-<c>-O4</c>, <c>-O9</c>, y así, pero la realidad es que niveles de |
612 |
+Algunos usuarios alardean de que obtienen mejor rendimiento usando |
613 |
+<c>-O4</c>, <c>-O9</c> y similares, pero la realidad es que niveles de |
614 |
<c>-O</c> mayores que 3 no tienen efecto. El compilador puede aceptar |
615 |
-CFLAGS como <c>-O4</c>, pero realmente no hace nada con el. Solo |
616 |
-realiza la optmización para <c>-O3</c>, nada más. |
617 |
+CFLAGS como <c>-O4</c>, pero realmente no hace nada con él. Solo |
618 |
+realiza la optimización para <c>-O3</c>, nada más. |
619 |
</p> |
620 |
|
621 |
<p> |
622 |
@@ -560,26 +573,27 @@ |
623 |
Como puede ver, cualquier valor por encima de 3 es tratado como solo |
624 |
<c>-O3</c>. |
625 |
</p> |
626 |
+ |
627 |
</body> |
628 |
</section> |
629 |
|
630 |
<section> |
631 |
-<title>¿Qué pasa con los parámetros redundantes?</title> |
632 |
+<title>¿Qué pasa con las opciones redundantes?</title> |
633 |
<body> |
634 |
|
635 |
<p> |
636 |
-A menudo CFLAGS y CXXFLAGS que están activadas en varios niveles de |
637 |
-<c>-O</c> están especificadas redundantemente en |
638 |
-<path>/etc/portage/make.conf</path>. Algunas veces esto ocurre por |
639 |
-ignorancia, pero también ocurre para permitir el filtrado o el |
640 |
-reemplazo de parámetros. |
641 |
+A menudo CFLAGS y CXXFLAGS que se han activado en varios niveles de |
642 |
+<c>-O</c> están especificadas de forma redundante en |
643 |
+<path>/etc/portage/make.conf</path>. A veces esto ocurre por |
644 |
+ignorancia, pero también se hace para permitir el filtrado o el |
645 |
+reemplazo de opciones. |
646 |
</p> |
647 |
|
648 |
<p> |
649 |
Muchos de los ebuilds del árbol del Portage contienen |
650 |
-filtrado/reemplazo de parámetros. Suele hacerse porque hay paquetes |
651 |
+filtrado o reemplazo de opciones. Suele hacerse porque hay paquetes |
652 |
que fallan en ciertos niveles de <c>-O</c>, o cuando el código fuente |
653 |
-es muy sensible para ser usado para cualquier parámetro adicional. El |
654 |
+es muy sensible para ser usado para cualquier opción adicional. El |
655 |
ebuild podrá cada vez filtrar para algunas o todas las CFLAGS y |
656 |
CXXFLAGS, o puede reemplazar <c>-O</c> con un nivel diferente. |
657 |
</p> |
658 |
@@ -588,41 +602,42 @@ |
659 |
El <uri |
660 |
link="http://devmanual.gentoo.org/ebuild-writing/functions/src_compile/build- |
661 |
environment/index.html">Manual del Desarrollador de Gentoo</uri> |
662 |
-resume dónde y cómo trabaja el filtrado/reemplazo de parámetros. |
663 |
+resume dónde y cómo trabaja el filtrado o reemplazo de opciones. |
664 |
</p> |
665 |
|
666 |
<p> |
667 |
-Es posible evitar el filtrado de <c>-O</c> por el listado redundante |
668 |
-de parámetros para un cierto nivel, como <c>-O3</c>, haciendo cosas |
669 |
-como: |
670 |
+Es posible evitar el filtrado de <c>-O</c> filtrando mediante el |
671 |
+listado redundante de opciones para un cierto nivel, como |
672 |
+<c>-O3</c>, haciendo cosas como: |
673 |
</p> |
674 |
|
675 |
-<pre caption="Especificando CFLAGS redundantes"> |
676 |
+<pre caption="Especificar CFLAGS redundantes"> |
677 |
CFLAGS="-O3 -finline-functions -funswitch-loops" |
678 |
</pre> |
679 |
|
680 |
<p> |
681 |
-Sin embargo, <brite>hacer esto no es inteligente</brite>. ¡Las CFLAGS |
682 |
-son filtradas por una razón! Cuando estos parámetros son filtrados es |
683 |
-porque es inseguro construir paquetes con ellos. Claramente, <e>no</e> |
684 |
-es seguro compilar su sistema completo con <c>-O3</c> si alguno de |
685 |
-estos parámetros está activada para este nivel causará problemas con |
686 |
-ciertos paquetes. Por lo tanto, no debería intentar "saber más" que |
687 |
-los desarrolladores que mantienen estos paquetes. <e>Confíe en |
688 |
-ellos</e>. ¡El filtrado y reemplazo de parámetros se hace por su bien! |
689 |
-Si un ebuild especifica parámetros alternativos, entonces no intente |
690 |
-convencerlo. |
691 |
+Sin embargo, <brite>hacer esto no es algo acertado</brite>. |
692 |
+¡Las CFLAGS se filtran por alguna razón! Cuando estas opciones se |
693 |
+filtran es porque es inseguro construir paquetes con ellos. |
694 |
+Claramente, <e>no</e> es seguro compilar su sistema completo con |
695 |
+<c>-O3</c> si alguna de estas opciones está activada para este nivel |
696 |
+causará problemas con ciertos paquetes. Por lo tanto, no debería |
697 |
+intentar "saber más" que los desarrolladores que mantienen estos |
698 |
+paquetes. <e>Confíe en ellos</e>. ¡El filtrado y reemplazo de |
699 |
+opciones se hace por su bien! Si un ebuild especifica opciones |
700 |
+alternativas, entonces no intente evitarlas. |
701 |
</p> |
702 |
|
703 |
<p> |
704 |
No encontrará más que problemas cuando construya un paquete con |
705 |
-parámetros inaceptables. Cuando reporte sus problemas en Bugzilla, |
706 |
-los parámetros que usó en <path>/etc/portage/make.conf</path> serán |
707 |
-fácilmente visibles y se le instará a recompilar sin ellos. |
708 |
-¡Protéjase de los problemas de recompilar no usando parámetros |
709 |
-redundantes en primer lugar! No asuma automáticamente que sabe más |
710 |
+opciones inaceptables. Cuando informe de sus problemas en Bugzilla, |
711 |
+las opciones que usó en <path>/etc/portage/make.conf</path> serán |
712 |
+fácilmente visibles y se le instará a recompilar sin ellas. |
713 |
+¡Protéjase de los problemas de recompilar evitando el uso |
714 |
+de opciones redundantes! No asuma automáticamente que sabe más |
715 |
que los desarrolladores. |
716 |
</p> |
717 |
+ |
718 |
</body> |
719 |
</section> |
720 |
|
721 |
@@ -634,25 +649,27 @@ |
722 |
Los desarrolladores de Gentoo ya han configurado LDFLAGS básicas y |
723 |
seguras en los perfiles base, de tal manera que no necesita cambiarlas. |
724 |
</p> |
725 |
+ |
726 |
</body> |
727 |
</section> |
728 |
|
729 |
<section> |
730 |
-<title>¿Puedo usar parámetros por paquete?</title> |
731 |
+<title>¿Puedo usar opciones por paquete?</title> |
732 |
<body> |
733 |
|
734 |
<warn> |
735 |
-El uso de parámetros por paquetes complica la depuración y el |
736 |
-soporte. Asegúrese de mencionarlo en los reportes de fallos si está |
737 |
-usando esta característica y los cambios realizados. |
738 |
+El uso de opciones específicas de paquetes complica la depuración |
739 |
+y el soporte. Asegúrese mencionarlo en los informes de fallos si está |
740 |
+usando esta característica y los cambios que haya realizado. |
741 |
</warn> |
742 |
|
743 |
<p> |
744 |
-Información acerca de como utilizar las variables de entorno por |
745 |
-paquete (incluyendo CFLAGS) puede encontrarse en el <uri |
746 |
+Puede encontrarse información acerca de como utilizar las variables |
747 |
+de entorno por paquete (incluyendo CFLAGS) en el <uri |
748 |
link="/doc/es/handbook/handbook-amd64.xml?part=3&chap=6#doc_chap2">Manual |
749 |
Gentoo, "Variables de entorno por paquete"</uri>. |
750 |
</p> |
751 |
+ |
752 |
</body> |
753 |
</section> |
754 |
</chapter> |
755 |
@@ -663,7 +680,7 @@ |
756 |
<body> |
757 |
|
758 |
<p> |
759 |
-Los siguientes recursos son un poco de ayuda en aras de comprender la |
760 |
+Los siguientes recursos pueden ser de ayuda para comprender la |
761 |
optimización: |
762 |
</p> |