私の Perl スクリプトには、理解できない奇妙な動作があります。処理中に成長するハッシュの配列として格納された大きな構造を処理しています。問題は、構造を hdd に保存すると最大 8 MB になることですが、処理中には約 130 MB の RAM が必要になります。なぜそんなに大きな違いがあるのですか?
処理の主な流れは次のようになります。
while(...)
{
my %new_el = %{Storable::dclone \%some_el};
# ...
# change a few things in new_el
# ...
push @$elements_ref, \%new_el;
}