2

複数のマシンで実行されるpythonスクリプト(py2exeで作成されたexe)があります。この Python exe は定期的に 2 つのことを行います。1 つのスレッドがさらなる処理のために py ファイルを書き込み、別のスレッドがpyZmqモジュールを使用して tcp ポートをリッスンします。約 12Mo の RAM を使用して、数日間完全に動作しました。

ここに問題があります。これらのマシンは3dsmaxレンダリングも実行します。3dsmaxシステムで使用可能なすべての RAM を使用し、スクリプト用に 4Mo の RAM のみを残します。この状態では、レポート (py ファイルの書き込み) スレッドは正しく実行されますが、tcp ポートをリッスンするスレッドは機能しなくなります (マシンへのメッセージの送信は受信されません)。

ただし、この python exe プロセスは高レベルの優先度で実行されます。

set_nice(psutil.HIGH_PRIORITY_CLASS)

では、実行中の他のプロセスがこの RAM を使用できないように、プロセス用に 14Mo の RAM を予約するにはどうすればよいでしょうか? または、exeがRAMを他のプロセスに「与える」ことを回避する別の方法はありますか?

ありがとう、キブ

4

1 に答える 1

0

Win32 コールVirtualLockを使用できます。簡単な Python の例は見当たりませんし、Windows マシンも手元にありませんが、比較的簡単かもしれません。

Python ProcessHacker以外ではできるようですが、確認できません。

ただし、一般的には、これは悪い考えです。もっと深刻な問題が発生している可能性があると思います。幸運を!

于 2013-02-25T01:36:54.437 に答える