Python的内存管理机制

Posted BOYE

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Python的内存管理机制相关的知识,希望对你有一定的参考价值。

引入计数

在Python中,每个对象都有指向该对象的引用总数---引用计数

查看对象的引用计数:sys.getrefcount()

import sys
alist=[\'a\',\'b\',\'c\']
>>> sys.getrefcount(alist)
2
>>> b=alist
>>> sys.getrefcount(alist)
3

【引用计数增加】

   1、对象被创建

>>> sys.getrefcount(\'abc\')
31
>>> n=\'abc\'
>>> sys.getrefcount(\'abc\')
32

 

   2、对象被引用

>>> m=n
>>> sys.getrefcount(\'abc\')
33

 

   3、作为容器对象的一个元素

>>> a=[1,12,\'abc\']
>>> sys.getrefcount(\'abc\')
34

【引用计数减少】

1、对象的别名被显式的销毁

>>> del m
>>> sys.getrefcount(\'abc\')

2、对象的一个别名被赋值给其他对象

>>> n=456
>>> sys.getrefcount(\'abc\')
32

 

3、对象从一个窗口对象中移除,或,窗口对象本身被销毁

>>> a.remove(\'abc\')
>>> sys.getrefcount(\'abc\')
31

 

垃圾回收

内存池机制

以上是关于Python的内存管理机制的主要内容,如果未能解决你的问题,请参考以下文章

Python如何进行内存管理

Python中的内存管理机制

Python内存管理机制

6-3 操作系统内存管理机制与Python垃圾回收面试题

python的内存管理机制

python内存管理机制