智能指针这个东西,基本上是各种系统内存管理的一个标配。所有的python对象都继承自PyObject对象,每当该对象多一个引用,其内置计数器就+1。每少一个就-1。当其减少到0时,就自动释放该内存。
但仅仅是智能指针是不够的,因为它解决不了循环引用的问题。python还采用了gc模块来解决循环引用的问题。gc模块的具体机制可以参考下文:
https://rushter.com/blog/python-garbage-collector/
总的来说,一般情况下我们是不用担心python内存释放的问题。如果你想手动做更多优化,可以考虑调用gc模块的手动释放内存的函数
In some cases, it is useful to disable GC and use it manually. The automatic collection can be disabled by calling
gc.disable()
. To manually run the collection process, you need to usegc.collect()
.