补充:垃圾回收机制

垃圾回收机制

垃圾回收机制(简称GC) python 解释器自带的一种机制,专门用来回收不可用的变量值所占用的内存空间

为什么要用垃圾回收机制

程序运行过程中会申请大量的内存空间,而对一些无用的内存空间如果你不及时处理,导致内存使用殆尽,导致内存溢出,造成程序崩溃

堆区与栈区

定义变量时,变量名与变量值需要存储,分别对应内存中的两块区域:堆区,栈区

变量名与值得内存地址关联存放于栈区

变量值放于堆区,内存管理回收则则是堆区的内容

垃圾回收的机制原理

引用计数

变量值被变量名关联的次数

致命缺点:循环引用

标记清除

当应用程序的内存空间被耗尽时,就会停止整个程序,然后进行两项工作,标记,清除

访问所有被直接引用和间接引用的对象,标记查看没有任何一条直接引用或间接引用可以访问到的值

它们就会被标记死亡,就会被清除

如果引用计数的回收机制,每次回收内存,都需要把所有对象遍历一遍,非常消耗时间,效率岂不是太低,

于是我们为了提升效率就会采用分代回收

分代回收

分代:如果经历多次扫描的,都没有被回收的变量,垃圾回收机制就会认为,这是一个常用的变量,就会对它扫描的频率降低

回收:

分为三代

新生代

青春代

老年代

扫描的频率依次降低

posted @ 2021-06-26 10:42  帅气的小虎  阅读(62)  评论(0)    收藏  举报