如果 C++ 项目的物理结构有利于编译速度,您将如何获得某种客观的衡量标准?有些人说你应该避免使用模板以获得更好的编译速度,但是如果模板生成大量非冗余目标代码,即使行/秒编译速度不是很好,那也不是很糟糕。因此,您无法真正检查两个项目之间的线数/秒来了解结构是否良好,而且许多其他因素无论如何都可能扭曲结果。
每秒生成的目标代码量是否是一个很好的衡量标准(显然是在同一平台和编译器上)?或者有一些代码分析工具吗?对物理结构进行某种客观测量以了解是否有改进空间会很有趣。例如。如果您应该尝试进一步优化头文件依赖性或将更多代码分组到 cpp 文件(ala unity 构建),请将更多内容从头文件移动到 cpp 等。
最佳答案
我会考虑计算实例化。有一个用于 boost 的模板分析器工具可以执行此操作:
https://svn.boost.org/svn/boost/sandbox/tools/profile_templates/
如果您使用的是 visual studio 2010 或更高版本,那么您可以使用名为 Meta 的扩展,它可以处理调用 boost 分析器工具的一些复杂性。
这是 visual studio 2010 扩展的链接。 http://visualstudiogallery.msdn.microsoft.com/325d7305-2787-4b1d-9ac7-743e3d767531
这里是 vs 2013 版本的源代码: https://github.com/brandon-kohn/Meta
关于c++ - 剖析 C++ 代码编译速度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24470620/