Python 釋放內存的3種方法

1.with as

https://cloud.tencent.com/developer/article/1083148

2.del

python話說會自己管理內存,實際上,對於佔用很大內存的對象,並不會馬上釋放。舉例,a=range(10000*10000),會發現內存飆升一個多G,del a 或者a=[]都不能將內存降下來。。
del 可以刪除多個變量,del a,b,c,d
辦法:
import gc (garbage collector)
del a
gc.collect()

馬上內存就釋放了。

在IPython中用run運行程序時,都是在獨立的運行環境中運行,結束之後纔將程序運行環境中的結果複製到IPython環境中,因此不會有變量被重複調用的問題。

如果你是指在自己的程序中想刪除所有全局變量的話,可以自己編寫一個clear函數,通過globals()獲取全局變量然後將其中不需要的內容刪除,例如下面的程序保留函數,類,模塊,刪除所有其它全局變量:

def clear():

    for key, value in globals().items():

        if callable(value) or value.__class__.__name__ == "module":

            continue

        del globals()[key]

不過程序中應該避免這種對全局變量的依賴。你也可以在IPython下用此函數清空全局變量。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章