1
pytestを使用していますが、テストごとに最大メモリ使用量を設定できるデコレータが必要です。答えたこのquestion、テストでpytestの場所のメモリ制限を得るには?
@pytest.mark.timeout(300)
def test_foo():
pass
と同様に、私が欲しい、
@pytest.mark.maxmem(300)
def test_foo():
pass
はEDIT:
私が試した、
メモリ割り当てをキャッチしていない>>> import os, psutil
>>> import numpy as np
>>> process = psutil.Process(os.getpid())
>>> process.memory_info().rss/1e9
0.01978368
>>> def f():
... x = np.arange(int(1e9))
...
>>> process.memory_info().rss/1e9
0.01982464
>>> f()
>>> process.memory_info().rss/1e9
0.019832832
関数内にあります。
これは素晴らしいですね。あなたは限界を設定して '少しバギーに精緻化できますか? –
デコレータは '@memory_limit(int(16e8))'と言っていますが、 'allocate(int(3e8))'のtry/exceptブロックは失敗します。 「ちょっとしたバグ」は、2つの数字の間に明白な関係があるとは思えませんでしたが、私の目的のためにはおおよそのものでした。 –