Enlazar implica empaquetar juntos todos los archivos .obj creados a partir de sus archivos fuente, así como cualquier archivo .lib al que haga referencia, en su salida (por ejemplo, .exe o .dll).
Sin enlaces incrementales, esto tiene que hacerse desde cero cada vez.
El enlace incremental enlaza su exe/dll de una manera que hace que sea más fácil para el enlazador actualizar el exe/dll existente cuando realiza un pequeño cambio y vuelve a compilar.
Por lo tanto, la vinculación incremental solo hace que compilar y vincular su proyecto sea más rápido.
El único efecto de tiempo de ejecución que podría tener es que puede hacer que su exe/dll un poco más grande y más lento, tal como se describieron aquí:
http://msdn.microsoft.com/en-us/library/4khtbfyf.aspx
Edit: Como se ha mencionado por Logan, la vinculación incremental es también incompatible con link time code generation - perdiendo así una posible optimización del rendimiento.
Es posible que desee utilizar el enlace incremental para compilaciones de depuración para acelerar el desarrollo, pero deshabilitarlo para versiones de lanzamiento para mejorar el rendimiento del tiempo de ejecución.
retardo cargado DLL puede ser lo que usted está pensando:
http://msdn.microsoft.com/en-us/library/151kt790.aspx
¡Ah, pensé que los enlazadores siempre hacían esto de todos modos! Por lo tanto, al cerrar 'la vinculación incremental' hará que el enlazador enlace todo desde cero cada vez? – Russel
"En la práctica, probablemente no valga la pena preocuparse por el efecto de esto". probablemente valga la pena mencionar que aunque la diferencia entre el enlace "normal" y el enlace incremental puede no ser tan bueno en cuanto a rendimiento en tiempo de ejecución, el enlace incremental es incompatible con la generación de código de tiempo de enlace que puede generar una diferencia de rendimiento drástica. –
@Russel: Sí, lo hará. @Logan: Gracias, he actualizado mi respuesta. –