如何在 Windows 中减少 CPU 的使用?

How to reduce CPU usage in Windows?

如果我用

import os
os.nice(10)

错误是

AttributeError: 'module' object has no attribute 'nice'

nice 可能只适用于 Linux 系统, 那么如何减少我的程序可用的 CPU 资源?

它检查特定进程是否是 运行,如果不是,则执行它。

我的代码如下所示:

import subprocess, psutil

proc = subprocess.Popen(['flux'])
pid = proc.pid
while 1:
    if not psutil.pid_exists(pid):
        proc = subprocess.Popen(['flux'])
        pid = proc.pid

我希望它使用尽可能少的资源。

正忙着等待;该循环将尽可能快地执行。处理好这个过程(即使 API 存在于 Windows 上)也无济于事。如果其他进程想要使用 CPU,它只会让其他进程先运行,但您的程序仍然会吃掉所有剩余的周期。

解决这个问题的一个简单方法是在检查之间睡一会儿:

import time

...

while 1:
    time.sleep(1)
    if not psutil.pid_exists(pid):
        proc = subprocess.Popen(['flux'])
        pid = proc.pid

但更好的方法是在程序完成之前一直阻塞。你可以这样做:

import subprocess

while True:
    subprocess.call(['flux'])

由于 subprocess.call 阻塞直到进程退出,您的代码在此期间不会花费任何周期。