Compiladores <- programita q construye programitas
Bueno, hoy voy a hablaros de los compiladores. Estos programitas cogen un fichero fuente escrito en un lenguaje tal como C, C++, ... y dan un programa escrito en ensamblador que el ordenador corre a todo trapo jejejje.
Lo que yo voy a explayarme es hablando de las optimizaciones y, en concreto, las que uso yo. Como hay gcc en todas las plataformas os escribiré las opciones según el gcc (aunque cualquier otro compilador tendrá las mismas o casi casi).
Mis CFLAGS son:
CFLAGS="-march=pentium4 -O2 -pipe -fomit-frame-pointer"
Estas CFLAGS indincan al compilador que escriban el programa ensamblador utilizando instrucciones específicas para pentium 4 (núcleo Nortwood): MMX, MMX2, SSE y SSE2 <- no utilizará ni 3DNow ni 3DNow2 ni SSE3 (entre otras). -O2 significa una optimización buena, existen -O0 sin optimización, -O1 optimizaciones ligeras, -O3 optimizaciones duras. -pipe que utiliza tuberías entre las compilaciones parciales. -fomit-frame-pointer para no utilizar el marco de pila (un método para mejorar la legibilidad de los programas o para facilitar la escritura a mano).
Cuando se depuran los programas yo utilizo: -O0 -ggdb3. No optimiza nada y pone ayudas a la depuración mediante el programa gdb (o uno que use el gdb, como el ddd) de nivel 3 que es el máximo.
Aviso que la no optimización hará que los programas resultantes sean muchos más lentos, -O1 mejorará parcialmente, -O2 mejorará algo más y -O3 tiene el problema de tender a inflar demasiado el binario.
Suscribirse a:
Enviar comentarios (Atom)
No hay comentarios:
Publicar un comentario