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