我的代碼如下所示:如何在Perl中釋放內存?
my %var;
my %var_new={};
while(1){
while(my ($k,$v)=each %var){
&a_sub($v);
}
%var={}; # A
map { $var{$_}=$var_new{$_}; } keys %var_new;
%var_new={}; # B
}
sub a_sub { #....} # will fill %var_new
我的程序的內存使用情況不斷地增高。
看來Perl不會在A線和B線
可用內存我如何可以手動Perl來釋放內存使用%var
和%var_new
?
你爲什麼要將hashref指定給散列? – Quentin
'嚴格使用;使用警告;使用診斷「(後者僅在開發過程中) – Quentin
儘管您發佈的代碼存在缺陷,但您沒有理由使用更多內存來發布代碼。 – ikegami