-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 Hola a todos, buscando por internet sobre el tema de las optimizaciones para linux he encontrado esta web: http://www.freehackers.org/gentoo/gccflags/flag_gcc3.html La verdad es que no tengo mucha idea sobre compiladores por lo que me surgen varias preguntas: 1)La pagina es para Gentoo pero supongo que para SuSE también valdrá, ¿verdad? 2)¿Merece la pena compilar según que tipo de aplicaciones? 3)¿Donde paso esos flags? Por que supongo que habrá algún metodo para no tener que ir cambiando Makefile por Makefile... - -- Se tardan veinte o más años de paz para hacer a un hombre, y bastan veinte segundos de guerra para destruirlo. .:: Balduino I ::. -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.2.2 (GNU/Linux) iD8DBQE/vU3KfLv5z36yRVARArIWAJ96meKIZkVEcYKRq/09Ruh4ay51LgCfVArb UNolUew7ULs5WFzV5AQ7rTg= =guuy -----END PGP SIGNATURE-----
Hola [ David B. P., 21.11.2003:]
buscando por internet sobre el tema de las optimizaciones para linux he encontrado esta web:
http://www.freehackers.org/gentoo/gccflags/flag_gcc3.html [...]
3)¿Donde paso esos flags? Por que supongo que habrá algún metodo para no tener que ir cambiando Makefile por Makefile...
Agregándolos al ~/.bashrc, por ejemplo ,---- | # optimizar y avisar | export CFLAGS="-O2 -march=i686 -mcpu=i686 -Wall -W" | export CXXFLAGS="$CFLAGS" `---- -- Saludos Karen .
El Viernes, 21 de Noviembre de 2003 06:11, Karen escribió:
Agregándolos al ~/.bashrc, por ejemplo ,----
| # optimizar y avisar | export CFLAGS="-O2 -march=i686 -mcpu=i686 -Wall -W" | export CXXFLAGS="$CFLAGS" Siempre teniendo en cuenta que algunos programas no se quedan nada contentos si los intentas compilar con opciones de optimizacion
-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 Ya lo había probado pero me ignora... :(. He probado haciendo en la consola echo $CFLAGS $CXXFLAGS y si que están definidas par aún así no funciona, el configure de las fuentes crea su propia linea de flags en el Makefile y no hace caso de la mía (he probado borrándola y tampoco me hace caso). El Viernes, 21 de Noviembre de 2003 06:11, Karen escribió:
Agregándolos al ~/.bashrc, por ejemplo ,----
| # optimizar y avisar | export CFLAGS="-O2 -march=i686 -mcpu=i686 -Wall -W" | export CXXFLAGS="$CFLAGS"
`----
--
Saludos Karen
.
- -- El equilibrio mental, juicio recto, valor moral, audacia, resistencia, forma de tratar al prójimo y cómo sacar el mayor bien de los contratiempos son cosas que no se aprenden en la escuela. .:: Carrel, Alexis ::. -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.2.2 (GNU/Linux) iD8DBQE/ve3dfLv5z36yRVARAgnDAJwI0gwWiKLv66RjmwYQhKFXIFpVYwCfRq7R 0yzoYXYiPTY2wC+S90vKsfg= =v5Ge -----END PGP SIGNATURE-----
El Viernes, 21 de Noviembre de 2003 11:50, David B. P. escribió:
-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1
Ya lo había probado pero me ignora... :(. He probado haciendo en la consola echo $CFLAGS $CXXFLAGS y si que están definidas par aún así no funciona, el configure de las fuentes crea su propia linea de flags en el Makefile y no hace caso de la mía (he probado borrándola y tampoco me hace caso). Pues pasalo al hacer el make $ make CFLAGS=$CFLAGS CXXFLAGS=$CXXFLAGS
-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 El Viernes, 21 de Noviembre de 2003 00:26, David B. P. escribió:
Hola a todos, [...] 1)La pagina es para Gentoo pero supongo que para SuSE también valdrá, ¿verdad? Si sirve, 2)¿Merece la pena compilar según que tipo de aplicaciones? NO Supongo que esto generará polemica, pero no me negareis que tengo parte de razón
las optimizaciones son "mentira", me explico: Que entiendo yo por optimizar: utilizar un codigo especifico para un hardware determinado. Si bien es cierto que el compilador empaqueta los datos para que una cpu u otra las pueda tratar mejor, solo se trata de eso, el binario será el mismo aqui y en china, el problema radica en el codigo si me dijeran: codigo fuente para 386, codigo fuente para pentium 3, para amd etc... eso SI lo llamaría optimizacion, pero no usando el mismo codigo fuente es cierto que se consigue una mayor velocidad (pero no mucha) por que quieras o no ayuda que el codigo binario esté preparado para cierta cpu, pero yo no encuentro que sea un augmento significativo (por eso gentoo me parece una tonteria, al menos desde el stage1) y no se vosotros, pero a mi no me sale a cuenta compilar TODO para conseguir una milesima de segundo menos en tiempo de ejecución (si alguien ha compilado las glibc o el gcc o el kde sabrá de que hablo 2 o 3 dias el pc muerto de asco) Por cierto, si alguien se ha preguntado nunca el porqué gentoo va mas rapido yo no solo le atribuiría su compilacion en maquina cliente sinó mas bien los pocos scripts y programas que arranca al iniciar y los pocos procesos que tiene en background. no es lo mismo gentoo base +kde arrancando GIMP que SuSE completo + kde arrancando GIMP Si esas estadisticas fueran en igualdad de condiciones veriais que no cambia tanto, es mas, podria asegurar que suse montado de la misma forma que gentoo (scripts de inicio etc..) iria exactamente igual Nota: SuSE no es lenta, está sobrecargada (cada cual debe ser lo suficientemente autonomo como para quitar lo que no usa) Espero no causar demasiado revuelo, un saludo! - -- Power, n: The only narcotic regulated by the SEC instead of the FDA. -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.2.2-rc1-SuSE (GNU/Linux) iD8DBQE/vfnXC8AbJ3F23bsRAoEpAKCYIcyYd0tKW+meao+dyGe+g2ZlTACaAirq ysJeymGNnzj/hCDaMqfrcGs= =Ot+b -----END PGP SIGNATURE-----
El 2003-11-21 a las 12:41 +0100, Jordi Rubió escribió:
las optimizaciones son "mentira", me explico:
Que entiendo yo por optimizar: utilizar un codigo especifico para un hardware determinado. Si bien es cierto que el compilador empaqueta los datos para que una cpu u otra las pueda tratar mejor, solo se trata de eso, el binario será el mismo aqui y en china, el problema radica en el codigo si me dijeran: codigo fuente para 386, codigo fuente para pentium 3, para amd etc...
Si y no. La opción -mcpu hace eso que dices, variar el empaquetamiento. Pero la opción -march además de eso cambia el juego de instrucciones disponible. Trata de ejecutar un "hello world" compilado con march=pentium4 en un 386... se cuelga. `-mcpu=CPU-TYPE' Tune to CPU-TYPE everything applicable about the generated code, except for the ABI and the set of available instructions. The choices for CPU-TYPE are `i386', `i486', `i586', `i686', ... While picking a specific CPU-TYPE will schedule things appropriately for that particular chip, the compiler will not generate any code that does not run on the i386 without the `-march=CPU-TYPE' option being used. `i586' is equivalent to `-march=CPU-TYPE' Generate instructions for the machine type CPU-TYPE. The choices for CPU-TYPE are the same as for `-mcpu'. Moreover, specifying `-march=CPU-TYPE' implies `-mcpu=CPU-TYPE'. Es decir, "march" selecciona el tipo de CPU con sus instrucciones disponibles, y -mcpu el ordenamiento. Así, puedes hacer `-march=i386 -cpu=pentium4' y funcionaría en un 386, pero con el empaquetamiento optimizado para el PIV. `-march=pentium4' a secas, en cambio, no, genera codigo de pentium4, con sus instrucciones propias. -- Saludos Carlos Robinson
El 2003-11-21 a las 00:26 +0100, David B. P. escribió:
3)¿Donde paso esos flags? Por que supongo que habrá algún metodo para no tener que ir cambiando Makefile por Makefile...
Yo antes cambiaba una opción en uno de los ficheros de configuración del gcc para seleccionar la CPU por defecto, pero cambió la versión y ahora mismo no se como se hace. Lo que hago ahora es editar el configure de cada programa, metiendo un -march= en el sitio adecuado. Es una opción "bestia", pero al hacerlo veo exactamente que es lo que hago. Debe haber una manera más práctica, pero no me he parado a pensarla bien. Y para acordarme, en el fichero pongo un comentario para encontrar el cambio rápidamente, El problema es que creo que si le paso un CFLAGS lo que hace es cambiar sus opciones por las mias, y yo sólo quiero añadir la mia (march). -- Saludos Carlos Robinson
participants (5)
-
Carlos E. R.
-
David B. P.
-
Javier Payno
-
Jordi Rubió
-
Karen