亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

python中的R類對象刪除和內存釋放?

python中的R類對象刪除和內存釋放?

慕妹3146593 2021-10-26 15:58:44
我來自 R,我似乎無法弄清楚 python 中的這個超級基本問題。假設我在 R 中擬合了一個隨機森林。它在一個名為rf. 它占用內存。如果我這樣做rm(rf),當我查看htop或輸入freeshell時,內存會被釋放。如果我在 python 中并適合 aRandomForestRegressor并調用它rf,然后執行del rf,沒有任何反應。我可以import gc再gc.collect()和什么也沒有發生顯然,python 太酷了,這樣的事情不容易。怎么找回我的記憶?
查看完整描述

1 回答

?
茅侃侃

TA貢獻1842條經驗 獲得超22個贊

這意味著你在某處有另一個引用。

如果您需要調試它,您可以使用print(sorted(globals()))print(sorted(locals()))列出您當前的引用。如果您熟悉gc,則可以使用gc.get_objects()來查看每個引用的對象。使用del刪除你不需要的引用。當你沒有對一個對象的引用時Cpython會自動進行垃圾回收。

這至少是理論......因為,您正在使用的模塊也可以保留引用,并且由于您保留對模塊的引用,因此不會被垃圾收集。您可以刪除模塊保存的引用(通過使用introspection)或del module完全刪除。也許您的對象有一個close函數或其他必須執行以釋放資源的函數(也許它是自動關閉的)。

不用說,引用保持是模塊應該避免的事情。


查看完整回答
反對 回復 2021-10-26
  • 1 回答
  • 0 關注
  • 194 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號