【发布时间】:2013-03-26 22:40:41
【问题描述】:
我正在开发一个具有大量编译时计算的 C++ 项目。长的编译时间让我们慢了下来。如何找出模板元程序中最慢的部分,以便优化它们? (当我们的运行时计算速度很慢时,我有很多分析器可供选择,例如 valgrind 的 callgrind 工具。所以我尝试构建一个调试 GCC 并分析它来编译我们的代码,但我并没有从中学到很多东西。)
我使用 GCC 和 Clang,但欢迎提出任何建议。
我在 Boost 的网站上找到了profile_templates,但它的文档似乎很少,并且需要 jam/bjam 构建系统。如果你展示了如何在非 Jam 项目中使用它1,我会支持你。 https://svn.boost.org/svn/boost/sandbox/tools/profile_templates/ 似乎可以计算实例的数量,而计算所花费的时间是理想的。
1我们的项目使用 CMake,并且足够小,可以接受将 Jamfile 组合在一起仅用于模板分析。
【问题讨论】:
标签: c++ profiling instantiation template-meta-programming