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

时间:2015-10-09 14:57:07

标签: python resources nice

如果我使用

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

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

1 个答案:

答案 0 :(得分:3)

忙着;该循环将尽可能快地执行。不错的过程(即使在Windows上存在该API)也无济于事。如果他们想要使用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会阻止进程退出,因此您的代码在此期间不会花费任何周期。