我正在为 Windows 开发一些 Python 代码。一个标准是它将使用不到 1% 的 CPU。我知道由于垃圾收集之类的原因,不可能一直保证这一点,但是尽可能接近的最佳做法是什么。我当前的解决方案是在代码周围散布大量 time.sleep(0.1),尤其是在循环中。但是,这种方法存在明显的问题。
可以采取哪些其他方法?
我还应该提到,该应用程序中有很多使用 threading 库的线程。
编辑:设置进程优先级不是我所追求的。
请您参考如下方法:
调度 CPU 时间是操作系统的工作。使用操作系统的内置进程限制机制(希望它们存在于 Windows 上)将您的进程限制为 <1% CPU。
这种在代码中每隔几行就进行一次不必要的休眠的风格将使代码难以创建、扩展和维护,更不用说极其不优雅了。 (限制自己的速率在非常小的、有限的、关键的部分可能很有用——例如你的程序正在排队大量的 IO 请求并且你不希望淹没操作系统,你可能希望放置一个 sleep-until -[条件] 在每个关键循环中都有可能淹没系统,但在其他方面要非常谨慎地使用。)
理想情况下,您会在启动时从程序中调用 API 以访问适当的操作系统机制,告诉操作系统适本地限制您。
