He oído que habilitar la generación de código de tiempo de enlace (el modificador/LTCG) puede ser una gran optimización para proyectos grandes con muchas bibliotecas para vincular. Mi equipo lo está usando en la configuración de lanzamiento de nuestra solución, pero el largo tiempo de compilación es una verdadera carga. Un cambio en un archivo que no depende de otro archivo desencadena otros 45 segundos de "Generación de código ...". La liberación es ciertamente mucho más rápida que la depuración, pero podríamos lograr la misma aceleración al desactivar LTCG y simplemente dejar/O2 activado.¿Cuáles son los pros y los contras de la generación de código de tiempo de enlace? (VS 2005)
¿Vale la pena dejar/LTCG habilitado?
'La creación de un lanzamiento debe ser una compilación completa desde el control de origen hasta redistribuible (binarios o incluso configuración), con un nuevo número de versión y etiquetado/archivado de las fuentes ¿No está esto en contradicción con lo que está escrito en la sección? Limitación en el uso de LTCG "en [este artículo] (https://msdn.microsoft.com/en-us/library/bb985904.aspx) por Matt Pietrek (el énfasis es mío): ... continuará. – Belloc
' Mientras LTCG Por lo general, es algo bueno, existen algunas trampas potenciales que pueden afectarlo. Primero, los encabezados precompilados y LTCG son incompatibles. Esto no debería ser un problema para la mayoría de los usuarios, ya que ** normalmente solo enciende LTCG en compilaciones de versiones * *, donde el tiempo de compilación no suele ser un problema.? – Belloc
No veo ningún problema, mi punto central es que la duración de la versión de lanzamiento no debería importar demasiado. Las versiones de lanzamiento deberían ser automáticas y no bloquear la máquina reveladora. s (o al menos: son infrecuentes). Son significativamente más lentos de todos modos debido al optimizador y debido a LTCG. No usar PCH en compilaciones de lanzamiento lo haría aún más lento, pero no tanto, en términos relativos, y no afectaría las compilaciones de desarrollo. --- Además de que la limitación parece ser una cosa del pasado (VS2003 tal vez?), AFAICT LTCG y PCH son compatibles, – peterchen