Was ist eine gute Methode, um zu erreichen, dass Perl 5 unter OS X nicht schnell genug über genügend Arbeitsspeicher verfügt?

9

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

zu erstellen

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

zu deaktivieren %Vor%

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.

    
Chas. Owens 05.09.2010, 00:40
quelle

1 Antwort

5

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.

    
bobbymcr 05.09.2010 01:02
quelle

Tags und Links