Python是否會進行任何分析以提前釋放內存?舉例來說,如果我有:何時數據被釋放?
d = some big array
# ... use(d) ...
# no d is used from here
# a lot of other code, the code could use more big arrays
什麼時候蟒蛇決定刪除由d
使用的內存?
如果我在函數中使用d
,函數完成後是否會釋放d
?
也許一般來說這很難,因爲d
可以分配給其他人,並且在功能完成後他們可以繼續使用d
。
不過,我一直在尋找一些好的做法,可以讓蟒蛇使用較少的內存...
當你不再使用'd'時,使用'del d'。 – nsilent22
@ nsilent22它只是取消引用名稱'd',但實際上並不會從內存中刪除數組(除非它是唯一的引用)。 –
與許多語言一樣,Python使用垃圾收集器。但垃圾收集的細節是實現定義的。我所知道的大多數使用引用計數的實現,就像@ nsilent22提到的那樣,使用'del'可以刪除對象的引用,使他們有資格成爲GC'd。 – 0x5453