2017-05-04 226 views
0

PythonとWindowsのTensorflowライブラリを使って深い学習ソフトウェアを書く。誤ってメモリに余りにも多くのデータが読み込まれ、コンピュータが応答を停止することがあります。私はプロセスを殺すことさえできません。WindowsでPythonのメモリとCPU使用を制限する方法は?

WindowsではPythonスクリプトのメモリとCPU使用率を制限できますか? PyCharmをエディタとして使用します。 UNIXシステムではresource.RLIMIT_VMEMを使用する可能性があるようですが、Windowsでは通知no module named resourceが届きます。

+0

通常、OSはプロセスによって他のプロセスが無責任にならないように注意する必要があります。たぶんあなたはいくつかのWindowsツールを使用してCPU /メモリを制限することができますか? CPUについては[this](http://stackoverflow.com/questions/4208/windows-equivalent-of-nice)、多分[this](http://stackoverflow.com/questions/192876/set-windows-process)を参照してください。 -or-user-memory-limit)を指定します。 – syntonym

+1

WindowsではJobオブジェクトを使用していますが、Windows 8より前のプロセスは一度に1つのジョブにしか存在できません。また、プロセスがジョブ内にあると、それを削除する方法はありません。また、ジョブの名前が指定されていない場合、その制限を変更するためのハンドルを取得する合理的な方法はありません。子プロセスが現在のジョブから離脱することが許可されている場合、スクリプトは自身を再生成して新しいジョブを作成する可能性があります。 – eryksun

答えて

-2

CPU使用量を制限することは悪い習慣です。あなたは何か間違っている、それを回避する代わりにそれを修正する。

あなたが言った:

時々間違えて、私はあまりにも多くのメモリと応答を停止 コンピュータにロードします。

誤って何を正確に意味しますか?あなたは間違いから学ぶべきです。

重い処理部分を別のthreadで実行して、スクリプトが応答しなくなることをお勧めします。

0

もちろん、Win32ジョブAPI(CreateJobObject & AssignProcessToJobObject)を使用して、プログラムをサブプロセスとして作成し、そのリソースを管理することができます。

しかし、単純な解決策は、すべての面倒なコーディングを経ることなく、Dockerを使用して管理対象環境を作成することです。

関連する問題