2

次のコードを含む python スクリプトの 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)
lc.start(10)
reactor.run()

ps コマンドを使用して CPU 使用率を取得しています (パーセンテージ)

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

条件は、5% を超える CPU を使用しないことです。しかし、スクリプトを実行するとすぐに、CPU 使用率が約 16% から 20% になります。その後、3 ~ 4 秒で 1% ~ 2% まで下がります。私の質問は、最初に CPU 使用率が 16% から 20% に増加するのはなぜですか? 私は、reactor の実行が開始されると、しばらくの間 CPU 使用率が上昇することを観察しました。その後、私の場合はほとんど CPU を使用しません (0.3% から 0.4%)。

4

1 に答える 1

1

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()

あなたのマシンが私のものに似ている場合、エンターを押す前にブリップが表示されるはずですが、それを見続けても何も表示されないはずです.

于 2015-03-03T22:16:47.653 に答える