我们开发了一些小服务来像 unix 守护进程一样运行。
我们的第一个实现依赖于扭曲的反应器。reactor 实例是我们的工件,用于在子进程调用后保持 OS 进程处于活动状态并不间断地运行。
subprocess
最近,我们删除了这些模块的 Twisted 依赖项,保留了在调用后保持进程运行的必要性。我们while True: time.sleep(.1)
在“main()”方法的末尾添加了一个 ' ' 语句,它工作正常。
time.sleep(.1)
考虑到每分钟约 600 次唤醒事件,通过调用,我们的性能正在浪费性能。这对我们的应用程序性能不利。如果我们更换
while True:
time.sleep(.1)
经过
while True:
pass
它消耗了大量的 CPU 时间(大约 i5 的 1.7%,持续)。
有更好或平衡的替代解决方案,CPU 时间占用更少,并且对以下选项具有响应性能?
reactor.run()
和
while True:
time.sleep(.1)
我在 stackoverflow 和 web 上找到了一些类似的答案和讨论,但没有找到关于它考虑 python 的明确讨论。