¿Los beneficios / desventajas de la unidad se acumulan?

Desde que comencé en una nueva compañía, me di cuenta de que usan archivos unity cpp para la mayoría de nuestra solución, y me preguntaba si alguien puede darme una razón definitiva sobre por qué y cómo estos aceleran el proceso de comstackción. Pensé que la edición de un archivo cpp en los archivos de unidad obligará a la comstackción de todos ellos.

Pregunta muy similar y buenas respuestas aquí: #include todos los archivos .cpp en una sola unidad de comstackción?

El resumen parece ser que una menor sobrecarga de E / S es el mayor beneficio.

Véase también The Magic Of Unity Builds también enlazado en la pregunta anterior.

Lee Winder publicó sus experiencias con Unity Builds – The Evils of Unity Builds

Su conclusión es:

Unity construye. No me gustan.

Es porque ahorra trabajo redundante. Análisis y comstackción redundantes para dependencias. La vinculación también es mucho más compleja: tiene sus exportaciones en un solo objeto (o algunas), o son exportaciones redundantes por separado en la mayoría de los archivos objeto del objective. Menos objetos producen menos E / S y tiempos de enlace reducidos. Dependiendo de su configuración, la inclusión podría ser un problema: en el sistema de “comstackción unitaria” que uso, la comstackción es, en última instancia, unida a la CPU y / o la memoria.