我想知道是否有可能在生产服务器 tall gcc 上有 N 个核心,我希望它在编译/链接时使用每个核心的 50%?我们可以从其他一些只允许它使用一半 cpu 的应用程序启动 gcc 吗?
请您参考如下方法:
gcc 和大多数程序一样,没有内置的方法来降低自己的速度。您可以编写一个生成子进程的包装程序,然后在循环中重复使用 POSIX 函数 usleep
和 kill
来停止并重新启动它,直到它完成。但是,我想知道为什么您需要在 50% 的时间使用每个核心,而不是在 100% 的时间使用一半的核心——正如已经指出的那样,通过调整数量更容易实现并行作业 make
运行。例如,make -j 2
会将 gcc
进程数限制为 2。
编辑:您也可以通过以高友好度运行 make
来实现您的目标。