Я работаю над проектом С++ с обширными вычислениями времени компиляции. Длительное время компиляции замедляет нас. Как я могу узнать самые медленные части наших метапрограмм шаблонов, чтобы я мог их оптимизировать? (Когда у нас медленные вычисления во время выполнения, у меня есть много профилировщиков, например, valgrind callgrind
. Поэтому я попытался создать отладочный GCC и профилировать его, компилируя наш код, но я не многому научился от этого.)
Я использую GCC и Clang, но любые предложения приветствуются.
Я нашел profile_templates
на сайте Boost, но он, как представляется, тонко документирован и требует системы сборки jam/bjam. Если вы покажете, как использовать его в проекте, отличном от jam 1 я буду перенаправлять вас. https://svn.boost.org/svn/boost/sandbox/tools/profile_templates/, кажется, подсчитывает количество экземпляров, тогда как время отсчета было бы идеальным.
1 В нашем проекте используется CMake и достаточно мала, чтобы взломать Jamfile только для профилирования шаблонов может быть приемлемым.