Мне нужно смоделировать процесс, требующий памяти. Например, на машине с 4,0 ГиБ мне нужен процесс, который потребляет 3,2 ГБ (дайте или возьмите несколько МБ).
Я предположил, что это должно быть так же просто, как:
my $mbytes = 3276;
my $huge_string = 'X' x ($mbytes * 1024 * 1024);
Но в итоге я получаю в два раза больше памяти, чем мне нужно.
это то же самое на двух компьютерах с Windows 7 amd64: один с 64-битным, другой
с 32-битной сборкой Strawberry Perl
Я использую Sysinternals Process Explorer и смотрю "Private Bytes"
Конечно, я мог бы просто $mbytes /= 2
(сейчас я, вероятно, сделаю это), но: