PTT
Submit
Submit
選擇語言
正體中文
简体中文
PTT
Python
[問題] 迴圈中想用gc處理記憶體
作者:
yauhh
(小y寶貝)
2014-05-21 02:33:09
嗨,新手到此拜會.
想問個問題,我有個工作需要用迴圈讀大量資料.
我想,假如在迴圈中指定了很多區域變數,這些變數空間在下一圈都直接拋棄掉嗎?
或者,我是否該在迴圈跑到一個數量的圈數,就開一次gc?
作者:
apua
(Apua)
2014-05-21 14:31:00
like this? ``for i in [1,2]: a=1``
作者:
yauhh
(小y寶貝)
2014-05-21 17:24:00
Yes. Many variables local to for loop.
作者:
grtfor
(哦啦啦)
2014-05-21 23:32:00
沒記錯的話,python 的gc call了,也不會馬上回收
作者: ya790206 (殘雲奪月)
2014-05-22 23:00:00
在 python,每次呼叫 gc.collect() 都會真的跑一次garbage collect。詳見CPython 原始碼Modules/gcmodule.c的 gc_collect function 。這裡說的是官方網站以c語言寫的直譯器,其他的我不知道
作者:
yauhh
(小y寶貝)
2014-05-23 12:09:00
那假如不用gc,迴圈中的變數會累積嗎?
作者: ya790206 (殘雲奪月)
2014-05-23 22:28:00
如果你的"不用gc"的意思是指gc.disable()來停用 gc 的話那麼你所產生的物件都不會被刪除。如果你"不用gc"指不呼叫gc.collect() ,則系統會在必要時自動呼叫gc.collect()。你不必刻意去呼叫他(除非你知道你在幹嘛)一直呼叫gc.collect()不會出事,只是一直再做沒意義的事而已
作者:
yauhh
(小y寶貝)
2014-05-23 23:03:00
唉,我真正在問的問題是迴圈中的變數所佔的記憶體空間,但你卻只在gc那邊繞. gc我知道啦,如果我想用就會用,但要用也要用在適當的情況. 而我的問題就是在詢問/尋找那個適當的情況而已.不要繼續在gc繞了. 我沒問gc的問題.
作者: ya790206 (殘雲奪月)
2014-05-24 11:03:00
我去年就已經看完 python gc 演算法和 vm 如何執行程式碼並不是為了回答你問題而去看程式碼。
作者:
timTan
(用口頭禪區分年記)
2014-05-24 18:23:00
再問清楚一點就好,何必講些失焦的話
繼續閱讀
Re: [問題] 讀容量大的文字檔
apua
Re: [問題]不用for迴圈尋找陣列中只出現過一次的資料
yauhh
[問題] 讀容量大的文字檔
sariel0322
[問題] 正則匹配問題
play9091
[問題] interactive mode下用script
jubilee
Re: [範例] 猜數目遊戲
flarehunter
[範例] 猜數目遊戲
bigpigbigpig
[問題] subprocess 呼叫 Teraterm 執行命令
lookat1205
[問題] 關於while跟break
ersfw4418
[問題] 如何計算影像的線段長度
ryoma0915
Links
booklink
Contact Us: admin [ a t ] ucptt.com