欢迎来到培训无忧网!

全国切换

咨询热线 400-001-5729

位置:培训无忧网 > 新闻资讯 > 电脑/IT > python培训 >  关于Python的垃圾回收有哪些需要学习的?

关于Python的垃圾回收有哪些需要学习的?

来源:培训无忧网 发布人:星星

2022-01-12 10:19:15|已浏览:198次

Python的垃圾回收

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

垃圾回收
      其实对于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开发频道或添加老师微信:15033336050

      注:尊重原创文章,转载请注明出处和链接 https://www.pxwy.cn/news-id-14761.html 违者必究!部分文章来源于网络由培训无忧网编辑部人员整理发布,内容真实性请自行核实或联系我们,了解更多相关资讯请关注python培训频道查看更多,了解相关专业课程信息您可在线咨询也可免费申请试课。关注官方微信了解更多:150 3333 6050

留下你的信息,课程顾问老师会一对一帮助你规划更适合你的专业课程!
  • 姓名:

  • 手机:

  • 地区:

  • 想学什么:

  • 培训无忧网
免 费 申 请 试 听
提交申请,《培训无忧网》课程顾问老师会一对一帮助你规划更适合你的专业课程!