我正在使用GCC 4.6在Linux中创建一个相当大的C++0x库。我的库严重依赖于模板类,导致使用该库的应用程序编译时间很长。我想通过提供最糟糕的类型/方法的显式实例来加速编译。是否有一种方法可以让GCC报告编译各种类型/方法所花费的时间,以便我可以有原则地应用我的显式实例,而不是凭直觉?
g++ some_file.cc -ftime-report会给你一个大致的时间估计,用于不同编译器阶段的时间消耗。在你的情况下,最重要的是名称查找和解析。
很遗憾,没有办法获得每个类/函数的编译时间。
Steven Watanabe提出了一个模板分析器,可以在Boost沙箱中找到,它可以帮助获取.cc文件中任何东西的潜在实例化数量。
12年后的更新:
大多数这些解决方案已经过时了。 请参考https://github.com/aras-p/ClangBuildAnalyzer以获取现代化的方法。