Ich muss einen Speicher-hungrigen Prozess zu simulieren. Auf einem Rechner mit 4,0 GiB benötige ich zum Beispiel einen Prozess, der 3,2 GiB benötigt (gib oder nimm ein paar MiB).Absichtlich essen bestimmte Menge an Speicher mit Perl-Skript
Ich nahm an, es sollte so einfach sein:
my $mbytes = 3276;
my $huge_string = 'X' x ($mbytes * 1024 * 1024);
Aber ich am Ende mit Prozess doppelt so viel Speicher zu essen, wie ich es brauche.
dies ist das gleiche auf zwei Windows 7 amd64 Maschinen: ein mit 64-Bit, die andere mit 32-Bit-Version von Strawberry Perl
Ich Sysinternals Process Explorer und beobachte „Private mit Bytes“
natürlich könnte ich nur $mbytes /= 2
(für jetzt, werde ich wahrscheinlich tun), aber:
Gibt es einen besseren Weg?
Kann jemand erklären, warum die Menge ist doppelt so lang wie die Zeichenfolge?
+1. Erleuchtung. Und getestet um zu arbeiten.) –