Отладка времени компиляции GCC
Я создаю довольно большую библиотеку в С++ (0X), используя gcc4.6 в linux. Моя библиотека в значительной степени опирается на классы шаблонов, что приводит к длительному времени компиляции приложений, использующих библиотеку. Я хотел бы начать ускорять процесс, предоставляя явные инстанцирования наихудших типов/методов.
Есть ли способ, чтобы gcc сообщал время, потраченное на компиляцию различных типов/методов, чтобы я мог применять мои явные экземпляры принципиально, а не через интуицию?
Ответы
Ответ 1
g++ some_file.cc -ftime-report
даст вам приблизительную оценку времени, проведенного на разных этапах компилятора. Наиболее важными в вашем случае являются поиск имени и разбор.
Невозможно получить время компиляции за класс/функцию.
STeven Watanabe предложил шаблон-профилировщик, доступный в бутиковой песочнице, которая помогает получить количество потенциальных экземпляров чего-либо в .cc
Ответ 2
Я знаю, что это не то, что вы ищете, но, возможно, ccache/distcc может помочь ускорить компиляцию.
Кроме того, если у вас есть многоядерная машина, вы можете использовать make -jN, чтобы сразу сообщить о запуске N заданий.
Не забывайте также о прекомпилированных заголовках.