¿qué hace --enable-optimizations al compilar python?
Estoy tratando de compilar Python 3.6 en una máquina Linux basada en arm,
./configure
produce esto:
Si desea una versión de compilación con todas las optimizaciones activas (LTO, PGO, etc), por favor, ejecute
./configure --enable-optimizations
.
¿Qué hace --enable-optimizations
?
1 answers
Este indicador habilita la optimización guiada por Perfil (PGO) y la Optimización del Tiempo de Enlace (LTO).
Ambas son optimizaciones costosas que ralentizan el proceso de compilación pero producen un aumento de velocidad significativo (alrededor del 10-20% de lo que recuerdo haber leído).
La discusión de lo que estos hacen exactamente está más allá de mi conocimiento y probablemente demasiado amplia para una sola pregunta. De cualquier manera, puede leer un poco sobre LTO desde los documentos en GCC que tiene una implementación para él y para empezar con PGO, lee su página wiki.
También, vea los problemas relevantes abiertos en el Rastreador de errores de Python que agregó estos:
- Cuestión 24915: Mejoras de optimización guiada por perfil (mejor entrenamiento, soporte llvm, etc.) (Añadido PGO.)
- Cuestión 25702: Compatibilidad con optimizaciones de tiempo de enlace para GCC y CLANG (Añadido LTO.)
-
Cuestión 26359: Opciones de compilación de CPython para listas para usar performance (Agrega el indicador
--enable-optimizations
al script configure que habilita las optimizaciones antes mencionadas.)
Como señaló @Shuo en un comentario y declaró en Número 28032, LTO no está siempre habilitado con la bandera --enable-optimizations
. Algunas plataformas ( dependiendo de la versión soportada de gcc
) lo deshabilitará en el script de configuración.
Las versiones futuras de esta bandera probablemente siempre la tendrán habilitada, por lo que es bastante seguro hablar de ello los dos aquí.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2017-09-24 22:02:57