Ich versuche, eine bestimmte Bedingung zu testen, die nur auftritt, wenn perl
eine malloc
hat, die fehlschlägt, weil kein Speicher übrig ist. Ich möchte, dass perl
so schnell wie möglich stirbt. Ich dachte, der schnellste Weg wäre, riesige Arrays wie
perl -le '$_->[100_000_000_000] = 1 for \(@a, @b, @c, @d); <>'
Aber ich musste es töten, nachdem mein Swap 5 Gig erreicht hatte, ohne Anzeichen dafür aufzuhören (ich bin auf OS X 10.6).
Ich habe es gerade auf Linux getestet und es stirbt ziemlich schnell:
%Vor% Das Problem scheint also OS X und seine dynamic_pager
zu sein.
Ich habe gerade versucht, dynamic_pager
mit
und Neustart, aber die Maschine hängt einfach komplett. Mein nächster Versuch wird sein, die com.apple.dynamic_pager.plist
config Datei zu ändern, um die vm Dateien auf eine sehr kleine Partition zu schreiben.
In einer früheren Frage " Simulieren von Speicherzuordnungsfehlern ", Benutzer freespace schlug vor, ulimit
mit einem Testbenutzerkonto zu verwenden, um die Speichermenge zu begrenzen, die verwendet werden könnte. Dies kann tun, was Sie wollen, ohne große Mengen an Speicher zu reservieren.