如果我使用make -j2
,它可以构建良好,但未充分利用CPU:
如果使用make -j4
,它可以快速构建,但是对于某些特定的模板密集型文件,它会占用大量内存,并且由于换成硬盘驱动器,还会降低整个系统和构建过程的速度:
如何根据内存自动限制并行任务的数量,例如:
,以便它以最大的速率构建项目,但在某些地方放慢速度以避免撞到内存墙?
想法:
-l
并人为地调整平均负载(当系统已经出现问题时,平均负载自然增加)。不是一个完整的解决方案,而是一种基于“后卫”的潜在方法。
执行一项警卫工作
a。等待抖动(页面错误/每秒超出限制)和高CPU使用率。b。找到内存使用率最高的作业,将其挂起。C。等待一段时间,以使系统重新平衡自身。d。重复
如果方法看起来不错,可以发布示例实现。