【发布时间】:2011-07-21 09:25:53
【问题描述】:
所以我有这个基于 Makefile 的构建系统,我的用户觉得它工作得太慢了。为了这个问题,让我们将性能定义为弄清楚它应该实际做什么所花费的时间。
我可以看到一些优化途径 --
- 由于包含 Makefile 片段,减少了解析 Makefile 和重新计算 DAG 的次数。
- 减少使用
make -C转到外部 Makefile 的次数 - 减少变量扩展
- 等
-- 但是我想先知道我的瓶颈在哪里。由于没有分析的优化是浪费生命,我想问:如何分析 Makefile?
假设我继承的系统设计得相当好,即它已经实现了行业中最常见的技巧:(主要是)非递归 make、ccache、预编译头、自动生成的头依赖等)。
... 只是为了抢占一些可能的答案。我知道可能会有比 GNU make 更快更好的构建系统——(就我个人而言,我急切地等待看到 CMake 的人会想出关于 Ninja 系统的内容)——但不幸的是,交换构建系统并不可行。
【问题讨论】:
-
您是否知道与运行工具相比,它花费了总时间的很大一部分来决定要做什么?
-
@Mike Dunlavey:是的,运行 anything 最多需要 10 秒,开始实际工作可能需要 60 秒。
-
有关测量整个构建性能的相关问题,而不仅仅是 Makefile 解析:stackoverflow.com/questions/6966877/…
标签: optimization profiling makefile gnu-make