FdT: Recomendación FE D ORA.

Horst von Brand vonbrand en inf.utfsm.cl
Jue Oct 14 21:29:40 CLST 2004


"rodrigo ahumada" <rodahum1978 en hotmail.com> dijo:

[...]

> alguien sabe cuales son los ajustes que puede hacer gcc a los programas
> para quede adaptado a la maquina, a partir de codigo en c?,

Mira un buen libro de compiladores. Analiza el codigo assembler que gcc
genera al optimizar, particularmente compara optimizando para distintas
variantes de la CPU.

Un compilador C moderno genera codigo de calidad al menos comparable que un
programador experto en assembler.

[No vengan con programitas ejemplo que muestran que dedicando dos horas a
 15 lineas de codigo C se obtiene assembler mejor, la idea es comparar con
 codigo escrito en forma rutinaria.]

>                                                             lo digo
> porque a c lo veo muy estricto, y se pueden hacer muchos trucos que no
> creo que el compilador pueda seguir,

El compilador esta construido para compilar en forma eficiente "uso tipico"
del lenguaje, si recurres a trucos cochinos "para optimizar" seguramente lo
confundiras y generara codigo horrible (ademas que tu fuente sera
incomprensible). Y te soprenderias al ver la clase de trucos que gcc aplica.

>                                      si uno fuera a compilar los
> programas en el destino y hacer ahi los ajustes, no convendria mejor
> escribir los programas en un lenguaje mas general (o funcional)?

No. C es un lenguaje definido cuidadosamente para ser facil de traducir
eficientemente en codigo de excelente calidad. Los compiladores C suelen
ser la parte mas critica para el rendimiento del sistema, y generalmente
han sido ajustados muy cuidadosamente (gcc no es excepcion). Los demas
lenguajes se usan mucho menos, y no han recibido tan carin~oso trato.

Por otro lado, un PC bastante decente hoy cuesta algo como 1/5 a 1/3 de lo
que le cuesta mensualmente un ingeniero a la empresa, es _mucho_ mas
importante aprovechar bien el tiempo de la gente (desarrollo, debugging;
interfaz comoda) que hacer uso eficiente de la maquina.
-- 
Dr. Horst H. von Brand                   User #22616 counter.li.org
Departamento de Informatica                     Fono: +56 32 654431
Universidad Tecnica Federico Santa Maria              +56 32 654239
Casilla 110-V, Valparaiso, Chile                Fax:  +56 32 797513


Más información sobre la lista de distribución Linux