我是Python,编程和Linux的总菜鸟。我写了一个简单的python脚本来跟踪各种应用程序的使用时间。我注意到经过一段时间后,python正在疯狂地利用100%的CPU。事实证明,获取鼠标位置的代码导致了问题。
我尝试在空的python脚本中运行此代码:
import time
from Xlib import display
while True:
d = display.Display().screen().root.query_pointer()._data
print(d["root_x"], d["root_y"])
time.sleep(0.1)
它可以工作,但CPU使用率会随着时间的推移而增加。使用time.sleep(1)
需要一些时间,但迟早会达到疯狂的价值。
我在Ubuntu 16.04.1 LTS上使用Python 3.5和python3-xlib 0.15
答案 0 :(得分:1)
为了使CPU保持稳定,我将display.Display().screen()
置于循环之前,这样它就不必一直做很多工作。屏幕不应该改变,也不应该改变,所以在之前设置它是有意义的。
import time
from Xlib import display
disp = display.Display().screen()
while True:
d = disp.root.query_pointer()._data
print(d["root_x"], d["root_y"])
time.sleep(0.1)
我对它进行了测试,对我来说它保持在0.3%左右。
希望这有助于:)