我们有很多GNU Make-files.我想计算构建期间使用的每个目标,以确定任何性能瓶颈.是否有工具或技术以方便和自动的方式执行此操作?
我可能想解析这些结果,以便在构建发生变化和增长时密切关注性能因素(但它已经非常庞大和复杂).
我想我以前在这里看过这个问题......
您可以使用调用shell但将其执行时间的内容替换为shell,并将结果与目标名称一起写入某处.每个目标只会构建一次(或者make会拒绝运行)所以你所要做的就是将时间加在一起.
很粗糙的例子:替换
make
Run Code Online (Sandbox Code Playgroud)
同
make SHELL='echo $@: && time sh'
Run Code Online (Sandbox Code Playgroud)
如果您不想将时间添加到一起,则还必须以某种方式将每个目标的命令加入到单个命令中.一种方法是通过预处理Makefile,但由于各种原因,除了最简单的Makefile之外,它不会很好.
例如尝试类似的东西
perl -0pe 's/([^:])\s*\n\t[@-]?/$1; /g' Makefile | make -f - SHELL='echo $@: && time sh'
Run Code Online (Sandbox Code Playgroud)
在这方面是一个非常粗暴的刺.
有各种替代方法,但我认为唯一真正的解决方案是添加此功能; GNU make是用非常便携的C编写的,所以不应该很难.
| 归档时间: |
|
| 查看次数: |
1874 次 |
| 最近记录: |