小整数池[-5,256]
python解释器为节省内存空间而内置的一个特性,pycharm也会有,可能定义的范围更大,所以比较吃内存。
因为在python解释器和pycharm启动时就会事先加载这些小整数池到内存中。
垃圾回收机制
作用:为了防止内存溢出,需要定期清理内存中无用的数据
引用计数
引用可以分为两种类型:
- 直接引用:变量直接被赋值的方式
- 间接引用:变量通过容器的数据类型被引用的方式
标记清除
弥补了引用计数的弊端(循环引用导致的内存泄露问题)。
标记清除是指当内存不用时,将扫描栈区的信息,如果没有被栈区直接或者间接引用的变量,这标记为垃圾内存,然后清除掉
分代回收
改善了引用计数的效率问题。
每次进行引用统计的时候都会遍历整个栈区,但是这样太耗费时间,效率低下。
可根据每次b遍历变量的引用计数是否为0,将这些变量划分为新生代--->青春代--->老年代。扫描频率依次降低