¿El rendimiento será mejor (más rápido) si compilo manualmente la fuente de un componente de software para la máquina real en la que se utilizará, en comparación con si la fuente se compiló en otra plataforma, tal vez para muchas arquitecturas diferentes? Obtuve algunos buenos resultados al compilar la fuente que descargué y me pregunto si esto se debió a compilarlo en lugar de descargar un binario precompilado, que a menudo es el caso con las actualizaciones de software.
binary
compilation
Niklas
fuente
fuente
Respuestas:
En muchos (si no la mayoría) de los casos, sí. Esto se debe a que el compilador puede producir código nativo optimizado para esa CPU y entorno en particular. El código es más "dirigido".
fuente
Compilar a partir de fuentes le brinda la ventaja de configurar los indicadores del compilador de la manera que desee para su plataforma específica. Descargar un paquete que se haya compilado con la misma configuración exacta que la suya no ofrecería ninguna diferencia, pero cambiar la configuración de los valores predeterminados puede obtener grandes mejoras.
Por ejemplo, si los binarios ofrecidos para la descarga se compilaron para la depuración (intencionalmente o por error), activar una optimización más agresiva mejorará el rendimiento en casi todas las situaciones. Por otro lado, si el código compilado está optimizado al máximo, no vería ninguna diferencia.
fuente
Esto realmente depende de los dos compiladores y los indicadores de compilador utilizados. Por lo general, la configuración del compilador y la marca en su máquina local son más apropiadas para su máquina en particular si tiene las cosas configuradas correctamente.
Pero, si, por ejemplo, el binario precompilado se construye con un compilador de optimización mucho mejor (o un punto de referencia especial diseñado con banderas ajustadas para ese código en particular y por suerte apropiado para su sistema) en comparación con el compilador en su sistema, entonces es posible que cualquier compilador que esté en su sistema realmente produzca un peor rendimiento.
fuente