Ich benutze Pytest, aber ich hätte gerne einen Dekorator, der eine maximale Speicherauslastung pro Test einstellen könnte. Ähnlich wie bei diesem question die mit beantwortet wurde,Wie pytest Platz Speichergrenzen für Tests?
@pytest.mark.timeout(300)
def test_foo():
pass
Ich möchte,
@pytest.mark.maxmem(300)
def test_foo():
pass
EDIT:
Ich habe versucht,
>>> 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
Welche fangen nicht die Speicherzuweisung in der Funktion.
Das sieht super aus. Könnten Sie näher auf "ein bisschen Buggy mit dem Festlegen der Grenzen" näher eingehen? –
Beachten Sie, dass der Dekorator '@memory_limit (int (16e8))' 'sagt, aber der try/except-Block fehlschlägt für' allocate (int (3e8)) '. "Ein bisschen buggy" bedeutete, dass ich keine offensichtliche Beziehung zwischen den beiden Zahlen finden konnte, aber für meine Zwecke war ein ungefähres Ergebnis in Ordnung. –