【发布时间】:2011-09-17 10:42:01
【问题描述】:
我正在使用 linux 中的 gcc4.6 在 C++(0X) 中创建一个相当大的库。我的库严重依赖模板类,导致使用该库的应用程序的编译时间很长。我想通过提供最糟糕的违规类型/方法的显式实例来开始加快速度。
有没有办法让 gcc 报告编译各种类型/方法所花费的时间,以便我可以以原则的方式应用我的显式实例化,而不是通过直觉?
【问题讨论】:
我正在使用 linux 中的 gcc4.6 在 C++(0X) 中创建一个相当大的库。我的库严重依赖模板类,导致使用该库的应用程序的编译时间很长。我想通过提供最糟糕的违规类型/方法的显式实例来开始加快速度。
有没有办法让 gcc 报告编译各种类型/方法所花费的时间,以便我可以以原则的方式应用我的显式实例化,而不是通过直觉?
【问题讨论】:
我知道这不是您想要的,但也许 ccache/distcc 可能有助于加快编译速度。
另外,如果你有多核机器,你可以利用 make -jN 来告诉 make 一次运行 N 个作业。
不要忘记预编译的头文件。
【讨论】:
g++ some_file.cc -ftime-report
会给你一个粗略估计在不同编译阶段所花费的时间。在您的情况下,最重要的是名称查找和解析。
唉,没有办法获得每个类/函数的编译时间。
STeven Watanabe 提出了一个模板分析器,可在 boost 沙箱中使用,它有助于获取 .cc 中任何东西的潜在实例化数量
【讨论】: