GNU make实用技巧与算术库实现
1. 构建并行性问题
在小型构建中,Amdahl定律预测的最大加速比在大约8个处理器时会达到平稳状态。实际的平稳状态还受到构建中只有13个可能任务的限制。
从构建结构来看,最多使用8个处理器。原因如下:有5个任务(t1、t2、t4、t6和t7)可以无依赖地并行运行;然后有3个小的任务链,每个链每次使用一个处理器,分别是t3、t5和t8;t9和t10;t11和t12;构建t可以复用8个处理器中的一个,因为此时它们都处于空闲状态。
在C和C++等有链接步骤的语言中,Amdahl定律对构建时间有显著影响。通常,所有目标文件在链接步骤之前构建,然后运行一个单一(通常很大)的链接过程。这个链接过程通常不可并行化,成为构建并行化的限制因素。
| 处理器数量 | 最大加速比 |
|---|---|
| 10 | 2.46x |
| 11 | 2.50x |
| 12 | 2.53x |
2. 让 $(wildcard) 递归
内置的 $(wildcard) 函数不是递归的,它只在单个目录中搜索文件。不过可以在 $(wildcard) 中使用多个
超级会员免费看
订阅专栏 解锁全文
2

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



