2010-12-15 8 views
2

長すぎるため、コードを提供しません。 Pythonスクリプトには、whileループで実行される長いコマンドを実行する必要があります。100%cpuを使用した比較的単純なPythonスクリプト

基本構造

while True: 
    The meat goes here 
    with the odd if: 
     and stuff 

今、私はそれを終えてることを、私はそれを実行しているときに、それは、何の例外を100%のCPUを使用していないことを気づいています。私は初心者であり、この問題の原因を本当に知りません。スクリプトが無期限に実行されるため(手動で終了するまで)、ループを何回も繰り返すとCPUに負担がかかるかもしれないと考えました。私は時間の最中にtime.sleep(1)を追加して、それが改善されていないかどうかを確認しました。

誰もが考えている?これはかなり長い一連のイベントですが、頻繁にトリガーされないifステートメントに大きく依存しています。 100%CPU使用率は、その特定のif文がトリガーされる前に発生するため、私は本当に紛失しています。

編集:使用されているCPUの邪魔になるために何か(例えば、ディスクIOやネットワークIOを待っているがない限り、それはUnix環境(Debianの)

+0

「while True:」行の下にtime.sleep(1)を追加しようとしていて、それが役に立たなかった場合は、私たちが手助けする前にもっとコードを見る必要があると思います。 – thirtydot

+1

あなたのコードにsleep(whileループの最後にある場合)をスキップする可能性のある 'continue'ステートメントがありますか? – thirtydot

+0

回答ありがとうございました。私は過去にCPU使用率をほとんど使わずにパッシブに実行する他のスクリプトを使用しました。 time.sleep(1)がその仕事をしていることを確認します。 – GEDDE5

答えて

8

で実行していることを含めるのを忘れて、またはスリープ状態で実行を一時停止する)、プログラムの実行中にCPU使用率は常に約100%になります。

ループにtime.sleep(numberOfSeconds)を追加する場合は、特定の条件を何度も繰り返し確認するだけの場合は、常に100%CPUを使用したくない場合があります。

+0

おかげで、これは役に立つスクリプトを作成する私の最初の実際の試みであり、100%CPUがtime.sleep() – GEDDE5

2

100%CPUとは、スクリプトが正常に実行されることを意味します。私は何の問題も見ません。それがうまく実行するために他のプログラムを妨げる場合は、あなたのtime.sleep(1)コードはスキップされるように

1

はおそらく、whileループ内breakまたはcontinueあり(素敵な)低い優先順位の下でスクリプトを実行します。 time.sleep(1)の部分が実行されていますか?

2

質問がある理由は、ではなく、を100%使用することです。これはあなたが書いたもののデフォルトです。 100%を使用しないためには、何か起こるのを待っている特定のコードを持つ必要があります。もしあなたがそれを持っていれば、エラーはそのコードにあります。

関連する問題