分析C ++代码编译速度

时间:2014-06-28 20:21:19

标签: c++ compilation profiling

如果C ++项目的物理结构有利于编译速度,您会如何获得某种客观测量?有些人说你应该避免模板以获得更好的编译速度,但是如果模板生成大量非冗余目标代码,即使行/秒编译速度不是很高,它也不是很糟糕。所以你不能真正检查两个项目之间的线/秒,以便在结构良好时得到一个好主意,加上许多其他因素可能会扭曲结果。

每秒生成的目标代码量是否是一个很好的衡量标准(显然在同一平台和编译器上)?或者是否有一些代码分析工具?对物理结构进行某种客观测量以了解是否存在一些改进空间将会很有趣。例如。如果您应该尝试进一步优化头文件依赖关系或将更多代码分组到cpp文件(ala unity builds),请将更多内容从头文件移动到cpp等。

1 个答案:

答案 0 :(得分:0)

我会考虑计算实例化。有一个用于boost的模板分析器工具可以执行此操作:

https://svn.boost.org/svn/boost/sandbox/tools/profile_templates/

如果您正在使用Visual Studio 2010或更高版本,那么您可以使用名为Meta的扩展来处理调用boost Profiler工具的一些复杂性。

这是Visual Studio 2010扩展程序的链接。 http://visualstudiogallery.msdn.microsoft.com/325d7305-2787-4b1d-9ac7-743e3d767531

源代码适用于vs 2013版本: https://github.com/brandon-kohn/Meta