メモリを大量に消費するプロセスをシミュレートする必要があります。たとえば、4.0 GiBのマシンでは、3.2 GiBを消費するプロセスが必要です(MiBを与えるか、または少し取ります)。
私はそれが次のように簡単であるべきだと思いました:
my $mbytes = 3276;
my $huge_string = 'X' x ($mbytes * 1024 * 1024);
しかし、私はプロセスが必要な2倍のメモリを消費することになります。
これは、2台のWindows 7 amd64マシンでも同じです。1台は64ビット、もう1台は32ビットビルドのStrawberryPerlです。
Sysinternals Process Explorerを使用していて、「PrivateBytes」を監視しています
もちろん、私は$mbytes /= 2
(今のところ、おそらくそれを行うでしょう)、しかし:
もっと良い方法はありますか?
量が文字列の長さの2倍である理由を誰かが説明できますか?