perl 释放内存问题【转】
2012-04-11 15:12
232 查看
最近一直在纠结perl里如何释放内存的问题。下面有几个简单的语句:
1、 perl -e 'for $i(1..10000){$hash{$i} = 0;print "$i\t$hash{$i}\n";delete $hash{$i};}for $j(10001..20000){$hash{$j}=1;print "$j\t$hash{$j}\n"}'
2、 perl -e 'for $i(1..10000){$hash{$i} = 0;print "$i\t$hash{$i}\n";undef $hash{$i};}for $j(10001..20000){$hash{$j}=1;print "$j\t$hash{$j}\n"}'
3、 perl -e 'for $i(1..10000){$a[$i]=0;print "$i\t$a[$i]";delete $a[$i];}for $j(10001..20000){$a[$j]=1;print "$j\t$a[$j]\n";}'
4、 perl -e 'for $i(1..10000){$a[$i]=0;print "$i\t$a[$i]";undef $a[$i];}for $j(10001..20000){$a[$j]=1;print "$j\t$a[$j]\n";}'
将哈希和数组里面的元素删除或初始化后,其占用的内存并不会释放。
然后,使用了 Data::Dumper :
use Data::Dumper;
%disney = ('cat'=>'Tom', 'mouse' => 'Jerry', dog=>'goofie');
delete $disney{'cat'};
$disney{'dog'} = '';
print Dumper(\%disney);
这样可以处理将全部数据读取后,释放内存
1、 perl -e 'for $i(1..10000){$hash{$i} = 0;print "$i\t$hash{$i}\n";delete $hash{$i};}for $j(10001..20000){$hash{$j}=1;print "$j\t$hash{$j}\n"}'
2、 perl -e 'for $i(1..10000){$hash{$i} = 0;print "$i\t$hash{$i}\n";undef $hash{$i};}for $j(10001..20000){$hash{$j}=1;print "$j\t$hash{$j}\n"}'
3、 perl -e 'for $i(1..10000){$a[$i]=0;print "$i\t$a[$i]";delete $a[$i];}for $j(10001..20000){$a[$j]=1;print "$j\t$a[$j]\n";}'
4、 perl -e 'for $i(1..10000){$a[$i]=0;print "$i\t$a[$i]";undef $a[$i];}for $j(10001..20000){$a[$j]=1;print "$j\t$a[$j]\n";}'
将哈希和数组里面的元素删除或初始化后,其占用的内存并不会释放。
然后,使用了 Data::Dumper :
use Data::Dumper;
%disney = ('cat'=>'Tom', 'mouse' => 'Jerry', dog=>'goofie');
delete $disney{'cat'};
$disney{'dog'} = '';
print Dumper(\%disney);
这样可以处理将全部数据读取后,释放内存
相关文章推荐
- 频繁分配释放内存导致的性能问题的分析
- java后端之加密码模块JceSecurity内存不释放问题
- 关于free如何知道要释放内存空间的长度问题
- hdu 3791(动态内存的释放问题)未解决
- [百度分享]频繁分配释放内存导致的性能问题的分析
- 频繁分配释放内存导致的性能问题的分析
- IE6-内存无法释放问题
- OpenCV 释放 vector 内存莫名崩溃的问题
- 释放内存越界问题
- 频繁分配释放内存导致的性能问题的分析
- Linux开发心得总结2 - 频繁分配释放内存导致的性能问题的分析
- /MT、/MD编译选项,以及可能引起在不同堆中申请、释放内存的问题
- 频繁分配释放内存导致的性能问题的分析
- 内存空间释放问题
- 编程过程中常见的内存开辟和释放问题
- solr、solrcloud内存溢出,内存不释放问题解决方法
- 关于在dll中申请内存,外部释放的问题
- linux频繁存取文件内存不释放问题
- 问题,值得研究 申请内存不释放没有问题
- 一个奇怪的GCD内存不释放的问题