python 内存管理机制(垃圾回收机制)
- python 内存的使用
- python在定义一个变量的时候,因为python是一门动态类型的语言,会在变量内存地址分配在运行时自动判断变量的类型对变量进行赋值(不会像java一样,提前声明变量类型)
- 引用计数
- python通过内存地址的引用计数是否为0,来判断分配的内存地址,已经废弃,需要回收
- 通过sys.getrefcount(), 可以查看该内存地址是否被引用,一般至少会从2开始计数,因为getrefcount()会临时指向此内存地址,引用计数为getrefcount()-1
- 内存池
- 内存池还是比较重要滴,如果有提到这个还是可以为自己加分的
- 作用:提高执行效率, 减少内存负担。
- 内存池缓存内容: 1. -5-256的整型,2. 短字符串(20个字符的字符串)
- python是一门成熟的语言,会自行进行 垃圾回收
- gc(garbage collector)
#手动调用垃圾回收
import gc (garbage collector)
del a
gc.collect() - 垃圾回收机制
- 引用计数为0
- 分代回收(由于频繁的垃圾回收会降低运行效率)
- 原理:分代回收分为0, 1, 2三代,在会记录其中分配对象(object allocation)和取消分配对象(object deallocation)的次数。当两者的差值高于某个阈值时,垃圾回收机制会自动启动
- 通过get_th
- gc(garbage collector)