补充:垃圾回收机制
垃圾回收机制
垃圾回收机制(简称GC) python 解释器自带的一种机制,专门用来回收不可用的变量值所占用的内存空间
为什么要用垃圾回收机制
程序运行过程中会申请大量的内存空间,而对一些无用的内存空间如果你不及时处理,导致内存使用殆尽,导致内存溢出,造成程序崩溃
堆区与栈区
定义变量时,变量名与变量值需要存储,分别对应内存中的两块区域:堆区,栈区
变量名与值得内存地址关联存放于栈区
变量值放于堆区,内存管理回收则则是堆区的内容
垃圾回收的机制原理
引用计数
变量值被变量名关联的次数
致命缺点:循环引用
标记清除
当应用程序的内存空间被耗尽时,就会停止整个程序,然后进行两项工作,标记,清除
访问所有被直接引用和间接引用的对象,标记查看没有任何一条直接引用或间接引用可以访问到的值
它们就会被标记死亡,就会被清除
如果引用计数的回收机制,每次回收内存,都需要把所有对象遍历一遍,非常消耗时间,效率岂不是太低,
于是我们为了提升效率就会采用分代回收
分代回收
分代:如果经历多次扫描的,都没有被回收的变量,垃圾回收机制就会认为,这是一个常用的变量,就会对它扫描的频率降低
回收:
分为三代
新生代
青春代
老年代

浙公网安备 33010602011771号