makefile - 使-j RAM限制

标签 makefile

有什么办法可以迫使make -j不会过度消耗我的RAM?我在开发团队中工作,并且我们有不同的硬件集,因此-j8可能并非对每个人都是最佳的。但是,make -j为我使用了过多的RAM,并溢出到swap中,这可能会导致整个系统崩溃。如何避免这种情况?

理想情况下,我希望让make监视系统负载并停止产生新线程,等待某些线程完成然后继续。

最佳答案

稍微简单的解决方案是让每个工作站都有一个适合于硬件可以处理的环境变量。让makefile读取此环境变量,并将其传递给-j选项。 How to get gnu make to read env variables.

另外,如果构建过程有很多步骤并且花费很长时间,请make重新读取环境变量,以便在构建期间可以减少/增加资源使用量。

另外,也许有一个服务/应用程序在工作站上运行,该服务/应用程序监视资源使用情况并修改环境变量,而不是尝试让make进行操作...

关于makefile - 使-j RAM限制,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11639524/

相关文章:

c++ - 无法使用 cmake 构建 Opencv 项目

makefile - makefile中 "all-before"和 "all-after"的含义

makefile - GNU使通配符替代?

c++ - 自动化 C++ 构建

c++ - Gnu Make 的递归性和 friend

linux - Haskell make recipe 使用 GHC 的悖论定理证明器失败

go - 先跑一个目标

static - 根据目标依赖关系使目标包含子目录

makefile - 抑制 make clean 中的消息(Makefile 无提示删除)

makefile - 自动工具:强制不重建configure/Makefile