在SCons中计算构建时间

5
我有一个项目,包含一个二进制文件和一组静态库。我想要计算每个库的构建时间,但尝试使用AddPreAction()/AddPostAction()计算经过的时间却没有成功。 AddPreAction()在所有库依赖的源文件编译完成后才被调用(这是有道理的)。关于此问题,有一个相关的帖子:如何测量scons构建的每个组件的构建时间?。但我更喜欢寻找一个更优雅的解决方案,而不是覆盖某些环境变量,然后必须解析输出以计算时间。 预先感谢您的帮助。
1个回答

5
你可以使用--debug=timeSCons 命令行选项来获取构建过程中各个方面的时间信息,相关文档在SCons man pages 中有记录。
以下是一段摘录,你可以在上述链接中阅读完整内容:
--debug=time
Prints various time profiling information: the time spent executing each 
individual build command; the total build time (time SCons ran from 
beginning to end); the total time spent reading and executing SConscript 
files; the total time spent SCons itself spend running (that is, not 
counting reading and executing SConscript files); and both the total 
time spent executing all build commands and the elapsed wall-clock 
time spent executing those build commands...

嗨,Brady。谢谢你的建议。我已经尝试过了,但我正在使用并行构建,输出看起来非常混乱,所以很难确定目标和经过的时间之间的关系。 - user1192525
我认为这应该与适当的输出管理器一起使用,以分离不同类型的输出。我还没有找到一个好的解决方案,也没有内置的解决方案。 - Evgen
@EvgeniiPuchkaryov 结果会显示在标准输出上,如果你想对其进行特殊处理,也许需要额外的编程工作。 - Brady
@Brady:嗯,我希望能够为所有构建组件提供集中的输出管理,这样就可以选择将单个组件构建定向到不同的输出,使用标准名称和位置。此外,还需要将SCons消息与编译或处理组件时打印的内容分开。因此,如果我想要查看构建时间,那么消息不会与其他内容混合在一起。 - Evgen
@EvgeniiPuchkaryov听起来是一个有趣的补充,因为目前我认为SCons没有类似的东西。尝试发送电子邮件到scons-users@scons.org - Brady

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接