我倾向于编写相当大的模板化仅标头 C++ 库,而我的用户通常抱怨编译时间。想了想这件事,我突然想到, _我不知道时间都去哪儿了_。是否有一些简单的方法可以使用常见的编译器来分析 C++ 编译过程,例如 GCC ( g++
)、 Intel C++ 编译器( icc
) 和 XL C/C++ ( xlC
)?例如,是否有可能了解 C++ 编译的每个阶段 花费了多少时间?
原文由 Jack Poulson 发布,翻译遵循 CC BY-SA 4.0 许可协议
我倾向于编写相当大的模板化仅标头 C++ 库,而我的用户通常抱怨编译时间。想了想这件事,我突然想到, _我不知道时间都去哪儿了_。是否有一些简单的方法可以使用常见的编译器来分析 C++ 编译过程,例如 GCC ( g++
)、 Intel C++ 编译器( icc
) 和 XL C/C++ ( xlC
)?例如,是否有可能了解 C++ 编译的每个阶段 花费了多少时间?
原文由 Jack Poulson 发布,翻译遵循 CC BY-SA 4.0 许可协议
3 回答2k 阅读✓ 已解决
2 回答3.9k 阅读✓ 已解决
2 回答3.2k 阅读✓ 已解决
1 回答3.2k 阅读✓ 已解决
1 回答2.7k 阅读✓ 已解决
3 回答3.4k 阅读
1 回答1.6k 阅读✓ 已解决
对于 GCC ,有 调试选项 可以找出 C++ 编译的每个阶段花费了多少时间?
Passes 在 GCCINT 9: Passes and Files of the Compiler 中有描述。
您可以在此处使用
-v -ftime-report
发布单个源文件的 g++ 编译的输出以进行 讨论。 GCC 邮件列表 上可能会有一些帮助。对于 GCC 以外 的编译器(或比 3.3.6 更古老 的 GCC),请参阅其他答案中的其他选项。