【发布时间】:2020-04-04 00:55:57
【问题描述】:
如何为使用 Clang LLVM 编译的 C++ 代码生成图形代码配置文件报告?
我将哪些命令行选项传递给 clang++ 以指示它在执行代码时收集分析数据?
收集的分析数据存储在哪个文件中?
将收集的配置文件数据转换为图形报告的后处理步骤是什么(类似于https://s3-us-west-2.amazonaws.com/brunorijsman-public/example-rift-python-code-profile.png)?
我可以完全控制 C++ 源代码和 Makefile。
它必须是 LLVM clang++(GNU g++ 对我来说不是一个选项)。 Xcode 也不适合我。
【问题讨论】:
-
您是否正在寻找类似vcperf for Linux 的东西(也在this CppCast episode 上进行了深入讨论)? IncrediBuild 可在 Linux 上免费试用,它生成类似的图表,但粒度不同(它涵盖文件构建时间并显示并行瓶颈,而不是模板实例化时间和标头处理时间等粒度指标)。
-
@metal 似乎 vcperf 和 incredibuild 提供了一份关于构建我的代码所花费时间的报告。如果是这样,那不是我要找的。我想知道执行我的代码所花费的时间。
-
哦,那它是clang还是gcc可能并不重要。您可以使用gprof、callgrind 和/或kcachegrind。 Here's a video 来自 CppCon 2017,关于分析和优化。有关更多信息,请参阅 Chandler Caruth 的其他演讲。
-
@metal 啊,我不知道它是 gcc 还是 clang 都没有关系。我认为 clang 有自己的分析工具链,与 gcc 的工具链不同。让我试试 gprof 或你的其他建议。谢谢!