python(四)

1.什么是python的垃圾回收机制
2.你所知道的能够实现单例模式的方式有哪些,尝试着手写几个
3.列举python中常用模块及主要功能,越多越好!
4.什么是浮动,浮动的效果是什么,有没有坏处,如何解决
5.你所知道的定位有哪些,每个定位各有什么特点,并列举哪些是不脱离文档流的哪些是脱离文档流的

什么是python的垃圾回收机制

垃圾回收机制是自动帮助我们管理内存,清理垃圾的一种工具

1、引用计数
当一个对象的引用被创建或复制时,对象的引用计数加1;
当一个对象的引用销毁时,对象的引用计数减1;
当对象的引用计数减少为0时,可以将其所占的内存释放了

优点:
简单、直观

缺点:
维护引用计数需要消耗一定的资源
循环应用时,无法回收,也正是这个原因,才需要通过标记-清理和分代收集机制来辅助引用计数机制。

2.标记-清除
不改动真实的引用计数,而是将集合中对象的引用计数复制一份副本,改动该对象引用的副本。对于副本做任何的改动,都不会影响对象的真实的引用计数

3.分代回收
将系统中所有内存块根据其存活时间划分为不同的集合,
每一个集合就称为一个“代”,垃圾收集的频率随着“代”的存活时间的增大而减小。
也就是说,活得越长的对象,也就越不可能时垃圾,就应该减少对它的垃圾收集频率。
那么如何来衡量这个存活时间:通常是利用几次垃圾收集动作来衡量,
如果一个对象经过的垃圾收集次数越多,可以得出:该对象存活时间就越长。
posted @ 2019-11-17 20:14  SetCreed  阅读(58)  评论(0编辑  收藏  举报