当前位置:首页 > 内存 > 正文

python内存管理 变量

  • 内存
  • 2024-04-27 18:19:27
  • 2615

一、

抱歉,您正在查找的页面当前不可用。


二、python的内存管理机制是什么
语言内存管理是语言设计的一个重要方面。它是决定语言表现的重要因素。无论是C语言中的手动处理还是Java中的垃圾收集,它们都成为了该语言最重要的特性。这里,我们以Python语言为例来说明动态类型、面向对象语言的内存管理方法。

一句话总结:以引用计数为主,标签去除和生成回收为辅(推荐学习:Python视频教程)

Python的垃圾回收(3种)
引用计数
当一个对象的引用计数器变为0时,该对象可能还在内存中,但不再可用。Python的垃圾回收期间不能进行其他操作如果Python想要在引用计数变为0时回收一个对象,那么Python的效率会很差。那么Python什么时候会回收它呢?这是一个很好的问题。
Python会监控它创建了多少个新对象以及有多少个对象的引用计数器变为0。两个值之间的差值将与阈值进行比较。如果大于阈值,就会开始收集内存,销毁引用计数为0的对象。
优点:实时性简单,缺点:引用计数的维护使用资源,循环引用。
世代回收
为了提高效率,有很多物品经过多次净化后仍然存在。可以认为此类物品不必经常回收。并且每个集合都可以回收。时间间隔不同。简单来说,这就是Python的分代回收。
具体来说,Python中的垃圾分为第1代、第2代和第3代。第一代的对象每次回收时都会被清理。当清理后引用的对象仍然存在时,它们将进入第二代集合,同样,清理第二代集合时存在的对象将进入第二代集合。
每次收集的清理时间是如何分配的第一代垃圾清理10次,第二代垃圾会清理。
标记清除
按需分配当内存不够时,从程序堆栈上的寄存器和引用开始,交叉对象,标记交叉的对象,然后清除内存中未标记的对象。
更多Python相关技术文章,请访问Python教程专栏学习!