Говорят, что удаление ненужных включений ускоряет сборку проекта. Я решил проверить это на простом примере.
#include <iostream>
int main()
{
std::cout << "Hello world" << std::endl;
return 0;
}
запускаем с флагом -ftime-report
TOTAL : 0.85 0.42 1.30
33358 kB
теперь продублирем 100 раз #include
#include <iostream>
...
#include <iostream>
int main()
{
std::cout << "Hello world" << std::endl;
return 0;
}
Итог:
TOTAL : 0.87 0.51 1.45
33358 kB
Eсли запустить прекомпиляцию gcc -E main.cpp > maon.precom.cpp , то мы увидим, что дублирование не включаются. При каких тогда условиях можно почувствовать ускорение? Как же тогда воспроизвести такой сценарий?
Повторное включение одного заголовочного файла игнорируется из-за стражей (include guard). Попробуйте включать разные файлы. Особенно разница должна быть заметна при использовании библиотек boost, использующих boost::mpl.
Сборка персонального компьютера от Artline: умный выбор для современных пользователей