使用'主动管理内存是否是一种良好的做法;del';和';gc.collect()';用Python?

使用'主动管理内存是否是一种良好的做法;del';和';gc.collect()';用Python?,python,garbage-collection,Python,Garbage Collection,前几天,我在网上看到了这段代码,这让我想知道如何用Python管理内存(在用Python编写脚本时,我从来没有主动做过这件事) 据我所知,代码删除了对三个变量的引用,然后显式调用Python的GC来释放未引用的内存,如本文所述 我的问题是,我应该在Python脚本中积极地这样做,以保持较低的内存占用,这样做有什么不利之处吗?是否还有其他类似的内存管理步骤需要纳入Python脚本中?不,没有。该链接副本中的公认答案具有高度误导性。实际上,gc甚至只处理循环垃圾收集器,CPython使用引用计数作为

前几天,我在网上看到了这段代码,这让我想知道如何用Python管理内存(在用Python编写脚本时,我从来没有主动做过这件事)

据我所知,代码删除了对三个变量的引用,然后显式调用Python的GC来释放未引用的内存,如本文所述


我的问题是,我应该在Python脚本中积极地这样做,以保持较低的内存占用,这样做有什么不利之处吗?是否还有其他类似的内存管理步骤需要纳入Python脚本中?

不,没有。该链接副本中的公认答案具有高度误导性。实际上,
gc
甚至只处理循环垃圾收集器,CPython使用引用计数作为其内存管理方案,当对象的引用计数达到零时,对象会立即被回收。编写组织良好的代码,而不是在全局命名空间中留下一堆对象,从而防止它们被垃圾收集,这是一种很好的做法。
# delete the uneeded df
del new_train
del old_train
del val_df
gc.collect()