Обычно самыми дорогими частями компиляции являются (а) чтение исходных файлов (из них ALL ) и (б) загрузка компилятора в память для каждого исходного файла.
Если у вас 52 исходных (.cc) файла, каждый из которых #include 47 #include (.h), вы собираетесь загрузить компилятор 52 раза и пропустить 2496 файлов.В зависимости от плотности комментариев в файлах, вы можете потратить немало времени на употребление бесполезных символов.(В одной организации, которую я видел, заголовочные файлы варьировались от 66% до 90% комментариев, и только 10% -33% файла были «значимыми». Единственное, что можно было сделать, чтобы улучшить читаемость этих файлов, было раздеться.каждый последний комментарий, оставляя только код.)
Посмотрите, как физически организована ваша программа.Посмотрите, можете ли вы объединить исходные файлы и упростить иерархию файлов #include.
Десятилетия назад такие компании, как IBM, поняли это и написали свои компиляторы, чтобы компилятору можно было передать список файлов для компиляции., а не только один файл, и компилятор будет загружен только один раз.