¿Compilará un compilador como el resultado de GCC en un mejor rendimiento?
Un programa compilado específicamente para la plataforma de destino en el que se utiliza generalmente tendrá un mejor rendimiento que un programa compilado para una plataforma genérica. ¿Por qué es esto? El conocimiento sobre el harware puede ayudar al compilador a alinear los datos para que sean compatibles con la memoria caché y elegir un orden de instrucciones que funcione bien con un pipeline de CPU.
El mayor beneficio se logra usualmente al aprovechar conjuntos de instrucciones específicas como SSE (en sus diversas versiones).
Por otro lado, debe preguntarse si un programa como GCC está realmente vinculado a la CPU (mucho más probable es que esté enlazado a IO) y ajustar su rendimiento de CPU proporciona un beneficio mensurable.
¿El código compilado por mi propio compilador compilado un mejor desempeño
Esperemos que no
! Permitir que un compilador optimice un programa nunca debe cambiar su comportamiento. No importa cómo haya compilado su GCC, debería compilar el código en los mismos binarios que una distribución binaria genérica de GCC.
Si el código compilado para la plataforma específica es más rápido que el compilador de código para una plataforma genérica, ¿por qué no enviamos todos los códigos en lugar de los binarios? Adivina qué, algunas distribuciones de Linux realmente siguen esta filosofía, como Gentoo. Y mientras lo hace, asegúrese de crear binarios enlazados estáticamente, el espacio en disco es tan barato hoy en día y le da al menos otro 0.001% de rendimiento.
Muy bien, eso fue un poco sarcástico. La razón por la que las personas distribuyen los binarios genéricos es bastante obvia: es geneir, el mínimo común denominador y funcionará en todas partes. Eso es una gran ventaja en términos de flexibilidad y amigabilidad para el usuario. Recuerdo que una vez que compilé Gnome para mi caja Gentoo, ¡me tomó uno o dos días! (Pero debe haber sido mucho más rápido ;-))
Por otro lado, hay ocasiones en las que desea obtener el mejor rendimiento posible y tiene sentido para construir y optimizar para las arquitcturas específicas.
_¡Las gafas! No hacen nada! _;) – Izkata
Sí, les pregunté, pero están ocupados en el muro de escalada :-P – Oz123
Yo dawg, he oído que te gustan los compiladores. – joshin4colours