作者dickyhu (轩)
看板perl
标题[问题] 写Perl程式减少记忆体使用量
时间Sun Oct 21 15:44:23 2007
请问一下各位高手。
我目前写程式每次都会觉得记忆体的使用量超大的。
因为我在Perl程式中用到很多的 阵列和变数 ( @tim 、$tp)
我看网路上说 可以在宣告阵列或变数前加一个 my @tim;
这样在这个阵列使用完後就可以把记忆体release出来。
我现在还是搞不懂什麽叫 全域变数、区域变数。
可以举个例子和我解释吗? 谢谢。
像我之前写一个程式,是去把17个目录里面的资料,读出来,然後检查档名是不是符合规则,而每个目录中大约都有500~1000个档案,结果程式在跑的时候,竟然吃掉1G的记忆体,然後常常执行到一半就变成 Out of memory.
* 107-10-21 15:43:06 补充
请问在宣告时应该怎麽宣告呢?
my @all;
my @all={};
undef @it; # 想要清除此阵列用
@it=undef(); # 想要清除此阵列用
这几种用法,那个是正确的啊??
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 61.64.100.234
1F:推 ArchRanger:my @all; undef @it; 应该就可以了 10/21 16:16
2F:推 jlovet:可以用pack/unpack把一堆资料包起来.要用的时候在解开 10/21 17:09
3F:推 LiloHuang:能不把整个资料读到array就不要读到array 请用单笔处理 10/21 18:15