CPU启动Twisted Reactor时的使用情况

CPU usage at the time of starting twisted reactor

我正在监视 CPU 包含以下代码的 python 脚本的使用情况

from twisted.internet import reactor, task
def fun():
    print "I don't know why CPU usage increases in the beginning"
lc = task.LoopingCall(fun)
lc.start(10)
reactor.run()

我正在使用 ps 命令获取 CPU 使用率(百分比)

ps aux|grep <script_name>|grep -v grep|awk '{print }'

条件是不能使用大于5%的CPU。 但是一旦我执行脚本,CPU 使用率就会达到 16% 到 20%。 之后,在 3 或 4 秒内下降到 1% 或 2%。 我的问题是,为什么 CPU 一开始使用率增加到 16% 到 20%? 我观察到,当 reactor 启动时 运行,CPU 使用率会增加一段时间。在那之后,它几乎不使用 CPU(0.3% 到 0.4%)在我的例子中。

启动 Python 解释器,将 Twisted 的所有字节码读入内存,并设置与启动 Python 进程相关的代码数据结构需要一点时间。

对我来说,这个数字比 20% 更接近 3%,但是 运行 你的脚本我确实看到了一个可观察到的 CPU 昙花一现。 (不知道你用的是什么型号的电脑,可能是性能太差了。)

不过,启动反应堆本身并不是很昂贵。您可以通过将程序修改为在导入后但在启动反应器之前暂停来看到这一点,如下所示:

from twisted.internet import reactor, task
def fun():
    print("I don't know why CPU usage increases in the beginning")
lc = task.LoopingCall(fun)
raw_input("Hit Enter To Start The Reactor:")
lc.start(10)
reactor.run()

如果您的机器与我的机器相似,您应该会在按下回车之前看到一个光点,但是如果您继续观察它,您应该什么也看不到。