含泪整理一下Python垃圾回收机制相关资料
  TEZNKK3IfmPf 2024年08月09日 58 0

内存管理是计算机科学的一个复杂领域,目前正在开发许多技术来提高其效率。

含泪整理一下Python垃圾回收机制相关资料

内存管理通常分为三个区域

内存管理通常分为三个区域,尽管区别有点模糊:

  •  
  • 硬件内存管理
  • 操作系统内存管理
  • 应用程序内存管理
  •  

管理内存的基本问题是知道什么时候保留它包含的数据,什么时候丢弃它,以便可以重用内存。这听起来很容易,但实际上是一个难题,它本身就是整个研究领域。在理想的世界中,大多数程序员都不必担心内存管理问题。不幸的是,在手动和自动内存管理中,不良的内存管理实践可以通过多种方式影响程序的健壮性和速度。

自动内存管理是一种服务,可以作为语言的一部分或作为扩展,自动回收程序不会再使用的内存。自动内存管理器(通常称为垃圾收集器,或简称为收集器)通常通过回收程序变量无法访问的块(即,后续指针无法访问的块)来完成其工作。

自动内存管理

自动内存管理的优点是:

  •  
  • 程序员可以自由地处理实际问题;
  • 模块接口更清洁;
  • 内存管理错误更少;
  • 内存管理通常更有效。
  •  

自动内存管理的缺点是:

  •  
  • 内存可能会保留,因为它可以访问,但是不会再次使用;
  • 自动内存管理器(当前)具有有限的可用性。
  •  

执行内存自动回收的方法有很多,回收技术中讨论了其中几种。

大多数现代语言主要使用自动内存管理: BASIC,Dylan,Erlang,Haskell,Java, JavaScript,Lisp,ML,Modula-3, Perl,PostScript,Prolog,Python, Scheme,Smalltalk等。

含泪整理一下Python垃圾回收机制相关资料

Python中的垃圾回收

Python在多种虚拟机上运行着几种实现:原始的“ CPython”实现在其自己的虚拟机上运行;IronPython在公共语言运行时上运行;Java虚拟机上的Jython。

CPython通过混合使用引用计数和不移动的 标记清除 垃圾收集来管理内存。引用计数可确保在对象的引用计数降至零时迅速删除对象,而垃圾回收器则回收循环数据结构。

​__del__​​和弱引用(通过 weakref模块)。

Python中的垃圾回收是以引用计数为主,分代收集为辅。引用计数的缺陷是循环引用的问题。

在Python中,如果一个对象的引用数为0,Python虚拟机就会回收这个对象的内存。

【版权声明】本文内容来自摩杜云社区用户原创、第三方投稿、转载,内容版权归原作者所有。本网站的目的在于传递更多信息,不拥有版权,亦不承担相应法律责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@moduyun.com

  1. 分享:
最后一次编辑于 2024年08月09日 0

暂无评论

推荐阅读
TEZNKK3IfmPf