有什么办法可以迫使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/