Gentoo Archives: gentoo-commits

From: "JosA MarAa Alonso (nimiux)" <nimiux@g.o>
To: gentoo-commits@l.g.o
Subject: [gentoo-commits] gentoo commit in xml/htdocs/doc/es: gcc-optimization.xml
Date: Sat, 22 Mar 2014 20:17:47
Message-Id: 20140322201744.47AB72004F@flycatcher.gentoo.org
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&amp;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>