老男孩教育专注IT教育10余年,只培养IT技术精英

全国免费咨询电话(渠道合作):400-609-2893

【Python培训班】关于Python的垃圾回收,有哪些需要了解的?

老男孩IT教育

行业新闻

2022年1月10日 17:39

很多人都知道Go语言有垃圾回收,但其实Python编程语言也有,垃圾回收简称‘GC机制’,当内存不再需要时,应及时释放,这种行为,被叫做“垃圾回收”,如果你还不了解,请看下文:

       很多人都知道Go语言有垃圾回收,但其实Python编程语言也有,垃圾回收简称‘GC机制’,当内存不再需要时,应及时释放,这种行为,被叫做“垃圾回收”,如果你还不了解,请看下文:

python培训机构

       垃圾回收

       其实对于Python开发者来说,日常是不需要关注内存管理和垃圾回收的,因为CPython的解释器有独有的机制进行处理,为什么在Python语言中不太需要关注垃圾回收呢?

       因为Python自己的解释器自动做了垃圾回收相应的处理,在绝大部分场景下是不需要人为干涉的,另外,提到Python就会想到开发效率,因为Python是一门胶水语言,在很多场景下,高性能以及内存问题并不凸显,而且现在服务器资源便宜而人力资源很贵的情况下。

       在使用Python做Web开发时,尽管工作了很长时间,也很少会遇到内存管理和垃圾回收的情况,Web应用几乎都是使用多进程模型的,一则是会有定期超时重启的机制,二是每次上线的操作也会进程的重启。

       所以不会有某个进程长时间的驻留,使其占用很多内存,导致内存泄漏。所以,GC的缺陷基本不太会对Web开发产生很大的影响。

       且CPython也足够完善,基本不太会出现内存泄漏这样的问题。大部分场景下,都是因为开发者错误的使用或者是误判导致内存占用不正常。

       引用计数

       Python的垃圾回收是建立在引用计数上的,所以理解它也是非常重要的,引用计数的原理如下

       当一个对象的引用被创建或复制时,对象的引用计数加1;

       当一个对象的引用被销毁时,对象的引用计数减1;

       当对象的引用计数减少至0时,也就意味着对象已经没有被使用了,可以将其所占用的内存立即释放。

       这种机制的特性是,有比较不错的实用性,但也会有一个循环引用的问题,比如A引用了B,B又引用了A,导致每个对象的引用计数都不为0,那么A和B占用的内存资源将永远不会被回收。

       所以就需要一些回收算法来解决这个问题,而Python就是使用了标记清除和分代回收机制。

       关于"关于Python的垃圾回收,有哪些需要了解的?"的话题到这里就结束了,老男孩教育Python班型分为:脱产班、周末班、网络班、直播班等,班型不同收费不同,想要了解课程价格,欢迎咨询在线客服,也可以来校免费试听,领取学习大纲。

  推荐阅读:

       Python超经典的6道面试题!老男孩Python全日制班

       【Python培训课程】总结4个Python常用高阶函数的使用方法!

       Python语言中函数参数都有哪些类型?老男孩Python线下面授班

本文经授权发布,不代表老男孩教育立场。如若转载请联系原作者。