PythonプログラムのRAM使用量を半分に制限しようとしているため、すべてのRAMが使用されているときに完全にフリーズしないため、次のコードを使用しています仕事と私のラップトップは、まだ凍結されています。私はmain
関数から呼び出す他の関数を使用していRAM使用量をPythonプログラムに制限する
import sys
import resource
def memory_limit():
rsrc = resource.RLIMIT_DATA
soft, hard = resource.getrlimit(rsrc)
soft /= 2
resource.setrlimit(rsrc, (soft, hard))
if __name__ == '__main__':
memory_limit() # Limitates maximun memory usage to half
try:
main()
except MemoryError:
sys.stderr.write('MAXIMUM MEMORY EXCEEDED')
sys.exit(-1)
。
私は間違っていますか?
ありがとうございます。
PD:私はすでにこれについて検索し、私が置かれているが、それはまだ働いていないコードを発見した...
おそらく、あなたは 'ulimit'または' prlimit'をPythonスクリプトの外側にしたいでしょう。あるいは、メモリに限られた 'cgroup'を設定し、そこでスクリプトを実行してください。私は自己制限しようとするのが最善の考えであるかどうかは確信していません - プロセスのメモリを割り当てる必要がある場合にはどうなりますか? – twalberg
'soft/= 100'、またはsoft // = 2を試しましたか? – Gribouillis
私はそれがすぐに終了すると言います@Gribouillis –