Отладка времени компиляции GCC

Я создаю довольно большую библиотеку в С++ (0X), используя gcc4.6 в linux. Моя библиотека в значительной степени опирается на классы шаблонов, что приводит к длительному времени компиляции приложений, использующих библиотеку. Я хотел бы начать ускорять процесс, предоставляя явные инстанцирования наихудших типов/методов.

Есть ли способ, чтобы gcc сообщал время, потраченное на компиляцию различных типов/методов, чтобы я мог применять мои явные экземпляры принципиально, а не через интуицию?

Ответ 1

g++ some_file.cc -ftime-report

даст вам приблизительную оценку времени, проведенного на разных этапах компилятора. Наиболее важными в вашем случае являются поиск имени и разбор.

Невозможно получить время компиляции за класс/функцию.

STeven Watanabe предложил шаблон-профилировщик, доступный в бутиковой песочнице, которая помогает получить количество потенциальных экземпляров чего-либо в .cc

Ответ 2

Я знаю, что это не то, что вы ищете, но, возможно, ccache/distcc может помочь ускорить компиляцию.

Кроме того, если у вас есть многоядерная машина, вы можете использовать make -jN, чтобы сразу сообщить о запуске N заданий.

Не забывайте также о прекомпилированных заголовках.