![CPU 如何工作以及它与进程的 CPU 使用率的关系](https://linux22.com/image/1527855/CPU%20%E5%A6%82%E4%BD%95%E5%B7%A5%E4%BD%9C%E4%BB%A5%E5%8F%8A%E5%AE%83%E4%B8%8E%E8%BF%9B%E7%A8%8B%E7%9A%84%20CPU%20%E4%BD%BF%E7%94%A8%E7%8E%87%E7%9A%84%E5%85%B3%E7%B3%BB.png)
我发现很多人建议在任务管理器中将一个进程的优先级设置为“实时”,并要求让进程在 100% CPU 使用率下运行。
但是,在任务管理器中 CPU 使用率目前不是 100% 的情况下,为进程提供更高的上限是否毫无用处,因为当前正在运行的所有进程甚至都没有超过我的 CPU 的能力?
或者例如,假设程序 A 运行需要 5 个 CPU 单位。如果我给程序 A 100 个单位资源而不是 50 个单位资源,程序 A 会运行得更快,尽管它在两种情况下都不会使用所有资源?
答案1
当某个进程有可能被其他 CPU 使用率较高的进程延迟时,您会希望提高该进程的优先级。
如果该进程使用的 CPU 资源较少(比如说 5%),那么一般来说,使其实时化不会有什么区别;它仍然会使用 5%,但是没有其他优先级较低的进程能够窃取这 5%。
实际上,优先级用于保留 CPU 使用率。
答案2
问题是有些程序不会使用更多 CPU,因为它们不是为多线程设计的。大多数程序仍然是单线程的,有些可以使用多于 1 个核心,但仅限于特定条件下。
部分原因是程序编写时并未充分利用单个核心。有时,无法让任务使用多个核心,因为您必须等待第 1 部分完成后才能开始第 2 部分。
在某些情况下,可以重写程序以支持多线程,但这可能要花费大量时间和金钱,所以说服开发人员这样做很难。当然,除非你给他一张空白支票,并为此付钱。