如何测量 scons 构建的每个组件的构建时间?

Mic*_*son 5 timing scons

我有一个使用 scons 构建的大型 C++ 项目。它的构建速度很慢,我想进行一些更改以使其构建速度更快。现在我想集中时间加速构建中最慢的部分。

如何找出哪些文件的编译时间最长?

Mic*_*son 2

我通过在 CXXCOM 变量的开头添加一些额外的内容来解决这个问题。Scons 使用此变量进行实际编译:

if os.getenv('BUILD_STYLE')=='timing':
  cxxcom = env['CXXCOM']
  env.Replace( CXXCOM = 'time '+cxxcom )
Run Code Online (Sandbox Code Playgroud)

然后我使用类似的东西运行 scons

BUILD_STYLE=timing scons > timing_log.txt
Run Code Online (Sandbox Code Playgroud)

最后使用一些 vim 宏整理日志。