make 并行性的系统限制

Posted

技术标签:

【中文标题】make 并行性的系统限制【英文标题】:System limit for make parallelism 【发布时间】:2016-05-05 04:22:21 【问题描述】:

有没有办法对make 自动使用-j 设置的进程数设置系统限制?我有一个默认为-j8 的系统,但是没有足够的内存来处理它而不进行交换。

如果没有提供具体数字,我想将系统默认设置为-j4

【问题讨论】:

【参考方案1】:

我在手册中没有看到任何表明您可以执行此操作的内容,并且我认为您不能在 MAKEFLAGS 中覆盖 -j 或类似的内容。

至少在较新版本的 make 中,您可以使用 -l/--max-load option 根据系统负载调整作业数量,但这不是内存限制。

我唯一能想到的就是将make 二进制文件本身包装在某种脚本中,该脚本控制传递给它的-j 选项(如果有)和MAKEFLAGS 中的任何值在环境中。

【讨论】:

以上是关于make 并行性的系统限制的主要内容,如果未能解决你的问题,请参考以下文章

Python - 使用多处理并行处理受 CPU 限制的任务

aiohttp:限制并行请求的速率

现代浏览器是不是仍然限制并行下载?

Azure Functions - 限制并行执行

如何限制运行的并行任务数量? [关闭]

并行调用API,每分钟有硬性限制。