Clang 9+ -ftime-trace可以很方便地获取单个文件编译最耗时,但当一个工程中有多个文件需要构建时,如何找最耗时的操作就尤为重要,例如:在整个构建过程中那个文件编译最耗时,那个头文件包含最耗时,那个C++模板实例化最耗时,那个文件以及那个函数代码生成最耗时等。ClangBuildAnalyzer应运而生。
1 编译/安装ClangBuildAnalyzer
首先下载ClangBuildAnalyzer:
git clone https://github.com/aras-p/ClangBuildAnalyzer.git
or
git clone https://gitee.com/wangwenchaonj/ClangBuildAnalyzer.git
编译ClangBuildAnalyzer:
cd ClangBuildAnalyzer
make -f projects/make/Makefile
将ClangBuildAnalyzer添加到系统路径:
cd build
cp ClangBuildAnalyzer /usr/local/bin/
root@ubuntu:/home/~# ClangBuildAnalyzer
USAGE: one of
ClangBuildAnalyzer --start <artifactsdir>
ClangBuildAnalyzer --stop <artifactsdir> <filename>
ClangBuildAnalyzer --analyze <filename>
2 待优化工程参数设置
设置clang编译器:
export CC=/usr/local/bin/clang
export CXX=/usr/local/bin/clang++
设置clang编译器-ftime-trace参数:
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -ftime-trace")
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS}</

本文介绍如何使用ClangBuildAnalyzer分析大型项目中各文件的编译时间,包括设置Clang编译器参数、收集编译时间数据、解析数据以找出耗时最多的编译操作,如文件解析、代码生成等。
最低0.47元/天 解锁文章
2772

被折叠的 条评论
为什么被折叠?



