Skip to main content
 首页 » 编程设计

linux之如何在编译/链接时让 gcc 达到每个内核不超过 50% 的占用率

2023年11月22日17dudu

我想知道是否有可能在生产服务器 tall gcc 上有 N 个核心,我希望它在编译/链接时使用每个核心的 50%?我们可以从其他一些只允许它使用一半 cpu 的应用程序启动 gcc 吗?

请您参考如下方法:

gcc 和大多数程序一样,没有内置的方法来降低自己的速度。您可以编写一个生成子进程的包装程序,然后在循环中重复使用 POSIX 函数 usleepkill 来停止并重新启动它,直到它完成。但是,我想知道为什么您需要在 50% 的时间使用每个核心,而不是在 100% 的时间使用一半的核心——正如已经指出的那样,通过调整数量更容易实现并行作业 make 运行。例如,make -j 2 会将 gcc 进程数限制为 2。

编辑:您也可以通过以高友好度运行 make 来实现您的目标。