Vi.*_*Vi. 16 memory parallel-processing makefile build
如果我使用make -j2它,它构建良好,但利用不足的CPU:
如果我使用make -j4它,它会快速构建,但是对于某些特定模板的文件,它会消耗大量内存,从而减慢整个系统和构建过程,因为交换到HDD:
如何使其根据内存自动限制并行任务数,如下所示:
,以便以最大速率建立项目,但在某些地方放慢速度以避免撞到内存墙?
思路:
-l如果内存繁忙,请使用并人为调整负载平均值(当系统出现问题时,负载平均值会自然增长).这不是一个完整的解决方案,而是一种基于“守卫”的潜在方法。
以高“-j”值开始 make。
运行一个警卫工作
A。等待抖动(页面错误/秒超过限制)和高 CPU 利用率。b. 找到内存使用率最高的作业,将其挂起。C。等待一段时间,让系统自行重新平衡。d. 重复
如果该方法看起来不错,可以发布示例实现。