使用GCC / CLANG跟踪代码膨胀的工具

时间:2013-07-02 06:39:30

标签: c++ templates profiling

(我正在寻找类似于this post的东西,但关注的是GCC / Linux)。

我有很多模板重量(如“仅模板”)代码,它使用了大量的元编程和特殊情况优化。 生成的二进制文件非常大,编译时间很长。

现在我想检查哪些函数模板生成最内联汇编代码。 我怎么能这样做?

某些背景信息:

  • 我们有一个带有大量算法组件的C ++模板库。 原作者专注于运行时速度,并没有考虑编译时间这么多。
  • 我想提高编译时的速度,但要保持运行时速度不变,从而将一些决定放在运行时而不是编译时。
  • 这一步的第一步是IMO将查看哪些功能模板在实例化副本方面最重。
  • 下一步是将这些信息与它们在分析器中的使用程度相结合,并且只保留许多特殊情况,并为热内循环提供编译时选择。

这是正确的方法吗?任何专业提示?

1 个答案:

答案 0 :(得分:1)

分而治之。

首先通过this method

解决运行时问题

这可能需要多次迭代,这并不容易。

然后学习阅读.map文件。 你会在那里看到哪些类占据了大部分的大小。 通过反复试验将它们拿出来,直到你得到你真正需要的东西。