# [Compilación] CGLAGS! ¿-O2? ¿-Os problematico? (abierto)

## Palmax Maverick

Tras muchos mitos acerca de que un mejor código nativo implica grandes ventajas, hay que recordar que el trasiego de memoria es muy lento, mucho más lento que las instrucciones de un micro.

Viendo bechmarks, normalmente lo mejor es tener "-march=pentium4 -Os -pipe" (que para eso tengo pentium4 ejejejej).

Pero dicen que puede dar problemas el -Os, es verdad?

Gracias

----------

## Franco Gotusso

¿-Os no es para optimizar los  tamaños de los ejecutables? ¿O es que -Os reduce tanto el tamaño del ejecutable que supone una ventaja frente a la mayor optimizacion de -O2 aunque el tamaño sea mas grande?

----------

## gringo

 *Quote:*   

> ¿-Os no es para optimizar los tamaños de los ejecutables?

 

es es la idea que yo tengo -> busca el menor tamaño del ejecutable posible incluso añadiendo optimizaciones que no están en ningún otro -OX.

No creo que implique una mayor velocidad de ejecución o nada por el estilo.

saluetes

----------

## LinuxBlues

 *gringo wrote:*   

> es la idea que yo tengo -> busca el menor tamaño del ejecutable posible incluso añadiendo optimizaciones que no están en ningún otro -OX.
> 
> 

 

De añadir optimizaciones nada, al contrario, quita muchas de las optimizaciones de cualquier otro -OX  con tal de conseguir el menor tamaño del binario posible.

De hecho, sólo es recomendable cuando no se tiene mucho espacio en el disco duro.

-Os  sería muy recomendable usarlo con compilaciones monstruosas tipo OpenOffice, pero lamentablemente el ebuild filtra las CFLAGS y usa -O2 irremediablemente. Aunque claro, siempre se puede retocar  :Wink: 

Lectura recomendada: GCC Myths and Facts

----------

## wel

 *LinuxBlues wrote:*   

> De añadir optimizaciones nada, al contrario, quita muchas de las optimizaciones de cualquier otro -OX  con tal de conseguir el menor tamaño del binario posible.
> 
> De hecho, sólo es recomendable cuando no se tiene mucho espacio en el disco duro.

 

Pues he pasado por esa página que enlazas, y resulta que -Os *puede* producir programas más rápidos, debido a que el programa se ajusta mejor a la caché.

Yo utilizo -Os, aunque he hecho bastantes benchmarks y la combinación -O2 -ffast-math es indispensable para obtener un código optimizado al máximo.

----------

## gringo

 *Quote:*   

> De añadir optimizaciones nada, al contrario, quita muchas de las optimizaciones de cualquier otro -OX con tal de conseguir el menor tamaño del binario posible. 

 

cierto, pero añade optimizaciones que busquen el menor tamaño posible, que era l que yo quería decir en mi primer post.

De cualquier manera -Os debe evitarse, no veo que sentido tiene en máquinas domésticas con ram y cpu de sobra, por escasos que estos sean.

saluetes

----------

## LinuxBlues

 *gringo wrote:*   

> cierto, pero añade optimizaciones que busquen el menor tamaño posible, que era l que yo quería decir en mi primer post.

 

Perdón, te entendí mal. 

Ciertamente la O es añadir optimizaciones al código, ya sea con una "s" o con cualquier número de 1 a 3.

Disculpas por haber malinterpretado el post, no sé que me llevaría a pensar que al decir que "añadía optimizaciones que no estaban en ningún otro -Ox" de alguna forma incluía a los otros Ox sin ser exclusivo. Es sencillamente una optimización pensada para lograr otro objetivo.

----------

## gringo

 *Quote:*   

> Disculpas por haber malinterpretado el post, no sé que me llevaría a pensar que al decir que "añadía optimizaciones que no estaban en ningún otro -Ox" de alguna forma incluía a los otros Ox sin ser exclusivo. Es sencillamente una optimización pensada para lograr otro objetivo.

 

tranqui hombre, tal y como lo había planteao tampoco se entiende mu bien  :Wink: 

saluetes

----------

## Palmax Maverick

Buenas

No digo que haga binarios mejor o peor optimizados, ni mucho menos. Digo que he oido en #gentoo que hace binarios ¡mal!

Qué lo que tu dices que haga, no es lo que hace.

De todas formas, si funcionara bien, en micros con poca L1/L2 he visto que corren mejor los programas con -Os.

Mi micro tiene 8/512KB de L1/L2 por ejemplo (un pentium4 HT a 3'4GHZ, el último northwood), lo que significaría que lo mejor para él es -Os según los benchmark que he visto. De todas formas esos benchamark son con trozos de código al azar, recuerdo que todo ello es muy dependiente del código!!

Hasta luego

Palmax Maverikc

palmax@gmail.com

----------

