

¡Es importante definir la arquitectura! La única excepción es cuando el programa vinculado dedica la mayor parte del tiempo de ejecución a funciones de GLIBC, ya que la mayoría de ellas determina código óptimo para el funcionamiento en la arquitectura actual mientras se ejecutan. Para obtener un rendimiento superior, se debe usar el siguiente comando:

La mayoría de estas pérdidas se debe a la reducción (o desactivación) de la vectorización y una planificación ineficiente del código. Por ejemplo, este es uno de los comandos que se usa con habitualidad:Įste comando compila "test.c" sin optimizaciones para ninguna arquitectura específica y puede conducir a pérdidas de rendimiento considerables (en comparación con el código ajustado específicamente). Siempre se puede ejecutar lo siguiente para comprobar las opciones que transfiere el controlador de GCC y las opciones internas:Įcho "int main " | gcc -x c -v -Q. La mayoría de los compiladores GCC para x86 (predeterminado en Linux de 64 bits) agregan: "-mtune=generic -march=x86-64" a las opciones de la línea de comandos, si se configuraron de la manera correspondiente. Gcc -v"Configured with: /configure … -with-arch=corei7 -with-cpu=corei7…"Įsto quiere decir que el GCC agregará "-march=corei7" a las opciones de línea de comandos. De manera predeterminada, el GCC transfiere las opciones que se establecieron en su configuración. El comportamiento predeterminado deriva en un rendimiento muy bajo, y no se recomienda usar el comando "gcc" cuando se compila en modo release.Įl GCC no reconoce arquitecturas a menos que se agregue la opción "-march=native". El manual del GCC dice "Cuando no hay ninguna opción de optimización, el objetivo del compilador es reducir el costo de compilación y hacer que la depuración produzca los resultados esperados". (1) El nivel de optimización predeterminado del GCC es "-O0". ❼uáles son las opciones predeterminadas del GCC? Deberían ser útiles para aquellos clientes y desarrolladores que necesitan un mayor rendimiento, pero que por diversos motivos no usan compiladores sujetos a derechos. Entonces, ¿cómo podemos hacer que el compilador GCC produzca código más eficiente? Describiremos algunas sugerencias opcionales para compilar "C", "C++" y "Fortran" en plataforma Linux x86 que ayudan a mejorar el rendimiento del GCC. ❾s un mito o una realidad? Intentaremos ver cómo es la cuestión con el GCC.

La gente dice que el conjunto de compiladores GCC (Colección de Compiladores GNU) no puede generar código eficiente en comparación con otros compiladores sujetos a derechos.
