我有一台 Intel i9-9900K,这是一款具有 8 个物理核心和 16 个线程的 CPU,我正在运行 Ubuntu 16.04。当我编译一个能够充分利用所有 16 个线程的项目时(即每个线程上有 16 个长时间运行的并行编译,而不是短期 100% 使用率的突发情况),几秒钟后我的整个计算机都会冻结。屏幕停止更新,我无法移动鼠标。大约 5 分钟后,一切开始再次更新,但与此同时,一半的编译都失败了,我的所有其他程序甚至一些后台进程都崩溃了。
使用 egmake -j12
而不是make
进行编译可以解决这个问题,但我希望能够使用所有核心进行编译。有什么方法可以解决这个问题吗?操作系统不应该从编译过程切换到需要定期更新的其他过程吗?