[問題] 寫Perl程式減少記憶體使用量

看板Perl作者 (軒)時間17年前 (2007/10/21 15:44), 編輯推噓3(300)
留言3則, 3人參與, 最新討論串1/2 (看更多)
請問一下各位高手。 我目前寫程式每次都會覺得記憶體的使用量超大的。 因為我在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

10/21 16:16, , 1F
my @all; undef @it; 應該就可以了
10/21 16:16, 1F

10/21 17:09, , 2F
可以用pack/unpack把一堆資料包起來.要用的時候在解開
10/21 17:09, 2F

10/21 18:15, , 3F
能不把整個資料讀到array就不要讀到array 請用單筆處理
10/21 18:15, 3F
文章代碼(AID): #176mDORB (Perl)
文章代碼(AID): #176mDORB (Perl)