作者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
推 ArchRanger:my @all; undef @it; 應該就可以了 10/21 16:16
推 jlovet:可以用pack/unpack把一堆資料包起來.要用的時候在解開 10/21 17:09
推 LiloHuang:能不把整個資料讀到array就不要讀到array 請用單筆處理 10/21 18:15