Pregunta

Hoy me di cuenta de que la biblioteca estática compilado que estoy trabajando es mucho mayor en Release modo que en Depurar . Me pareció muy sorprendente, ya que la mayoría de las veces ocurre exactamente lo contrario (por lo que puedo decir).

El tamaño en el modo de depuración es ligeramente más de 3 MB (que es un proyecto bastante grande), pero en la versión que sube a 6,5 ??MB. ¿Puede alguien decirme lo que podría ser la razón de esto? Estoy usando la configuración de un proyecto de biblioteca estática, cambiado casi nada en los ajustes de configuración de generación habitual de Visual Studio (2008). En el comunicado, que estoy usando / O2 y del "tamaño del favor o la velocidad" está ajustado en "Ninguno". Podría el ( "velocidad Maximizar") / O2 causa del Lib final sea mucho más grande que la versión de depuración con toda la información de depuración en ella?

EDIT: Otros detalles:
Depuración:
- optimización del programa conjunto: No se
- permitir a nivel de función que une: No

lanzamiento:
- optimización del programa conjunto: Enable-tiempo de enlace generación de código
- permitir a nivel de función que une: Sí

¿Fue útil?

Solución

La diferencia es específicamente debido a la generación de código en tiempo de enlace. Lea el capítulo Enlace en tiempo de generación de código en compiladores - Lo que todo programador debe saber acerca de optimizaciones del compilador en MSDN - que básicamente dice que con LTCG enciende el compilador produce muchos más datos que se empaqueta en la biblioteca estática para que el enlazador puede utilizar esos datos adicionales para generar un mejor código máquina, cuando en realidad une el archivo ejecutable <. / p>

Dado que usted tiene LTCG fuera en la configuración de depuración de la biblioteca producida es notablemente más pequeño, ya que no tiene esos datos extra.

PS: Enlace original (no trabajando en 11/09/2015)

Otros consejos

La optimización podría ser el problema aquí, sobre todo funciones inline creadas automáticamente serán más grandes pero más rápido que en la versión de depuración.

En lo personal nunca he visto un AP liberación sea más grande que un AP de depuración. Lo mismo pasa en las librerías.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top