Q:

Ускорение времени компиляции С++ кода при уменьшении включений

Говорят, что удаление ненужных включений ускоряет сборку проекта.  Я решил проверить это на простом примере.  
#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 ,
то мы увидим, что дублирование не включаются.  При каких тогда условиях можно почувствовать ускорение?  Как же тогда воспроизвести такой сценарий?  

A:

Повторное включение одного заголовочного файла игнорируется из-за стражей (include guard).  Попробуйте включать разные файлы.  Особенно разница должна быть заметна при использовании библиотек boost, использующих boost::mpl. 