Cherrypy quickstart 在闲置时消耗高 CPU 使用率

Cherrypy quickstart consuming high CPU usage while idle

我有以下 CherryPy 快速入门示例:

import cherrypy

class HelloWorld(object):
    @cherrypy.expose
    def index(self):
        return "Hello world!"

if __name__ == '__main__':
    cherrypy.quickstart(HelloWorld())

我发现如果我离开它 运行,它始终靠近 top 输出的顶部。例如,我把它放在 运行 过夜(不是 24 小时),这是顶部的行:

PID  USER      PR   NI VIRT    RES     SHR  S  %CPU  %MEM   TIME+      COMMAND 
8284 pi        20   0  126212  13868   5792 S  7.2   3.1    112:51.88  python

而且这段时间服务器没有通过REST进行交互,只是空转。 CPU 使用率如此高的任何原因,或防止它的解决方法?

可能不相关,但是下面的python代码也用了很多CPU:

while True:
    pass

它使用了很多 更多 CPU(也许是这样),但这让我想知道 CherryPy quickstart 是否正在做类似的事情来等待幕后。

我真的不认为你应该为此担心。而且您不必在生产中使用 quickstart() 。按照 here 将 Cherrypy 与 uwsgi 模块用于生产目的。它更快更轻。

CherryPy 在后台做的一件事是检查文件和导入模块的更改,然后重新执行该过程。使用 cherrypy.config.update({'engine.autoreload.on' : False}) 关闭自动加载器使用较少 CPU。 CPU 我的使用率从 1.5% 下降到不到 0.3%。