1
我的Perl腳本有奇怪的行爲,我不明白。我正在處理存儲爲散列數組的大型結構,這些數據在處理時正在增長。問題是,當我將它存儲在hdd上時,結構大約有8mb,但在處理時需要大約130mb的ram。爲什麼有這麼大的差異?問題與克隆和大型結構處理
等待處理的主要流程是這樣的:
while(...)
{
my %new_el = %{Storable::dclone \%some_el};
# ...
# change a few things in new_el
# ...
push @$elements_ref, \%new_el;
}
但它有什麼變化?什麼意思是我製作的副本比我需要的多?我不明白。我已經按照您的建議更改了代碼,但它在更多用法中沒有改變。 – jesper 2010-04-09 19:00:42
處理哈希和hashrefs的區別在於你沒有複製所有的鍵和值 - 但如果你沒有看到任何改進,你將不得不研究如何以及爲什麼你要複製數據,並處理你的數據在更小的塊中。 – Ether 2010-04-10 16:22:14