Python内存管理机制
来源:互联网 发布:linux apt-get卸载 编辑:程序博客网 时间:2024/06/10 21:13
Python有一个自己的私有堆(heap),运行python程序时所需要的所有Python对象和数据类型都保存在这个堆上,只有解释器才有权限去管理这个私有堆,程序员没有管理权限。
堆空间分配靠python内存管理器来完成。为了有效的利用内存,python使用缓冲池技术来优化管理过程。虚拟机每次申请256KB的大块内存B,然后分成若干个pool(大小为8的整数倍)。对于小于256byte的对象直接从内存池中分配内存(大多数python对象小于256byte),大于256byte的对象直接使用malloc函数从内存中获得。最多可以申请64M的大块内存B,超出64M之后,不管对象是不是大于256byte,都直接从内存中获得。完全不用的B释放然后回收。
Python默认采用引用计数机制来回收内存。当一个对象的引用计数为零时,存储该对象的内存块就会被标记为空闲,然后就会被free,在被系统回收。但是对于容器型,如list,dict等存在循环引用的问题,此时引用计数不可能为零,默认的引用计数机制就失效了。此时启用GC(Garbage Collection)机制来管理内存的回收的问题,尤其是对于这种循环引用的问题,具体的分析在我的博客中可以找到。
0 0
- Python中的内存管理机制
- 解读Python内存管理机制
- 解读Python内存管理机制
- 解读Python内存管理机制
- 解读Python内存管理机制
- python的内存管理机制
- Python内存管理机制
- python的内存管理机制
- Python内存管理机制
- Python内存管理机制
- python的内存管理机制
- Python内存管理机制
- python的内存管理机制
- python的内存管理机制
- python的内存管理机制
- Python内存管理机制
- python的内存管理机制
- Python的内存管理机制
- 创建rpm包
- JavaBean使用实例——注册验证
- BZOJ 2466 中山市选2009 树 高斯消元+暴力
- reiserfs分区配置
- 对于理解spring非常重要的一段话
- Python内存管理机制
- gem5 设置checkpiont以及从checkpoint处开始执行
- javascript面向对象编程-原型(笔记4)
- (1.3.4.1)交换排序:快速排序
- daemontools进程监控
- 第2周项目初见对象--时间类(1)
- 图书馆的书
- U-boot在TX2440上的移植
- 关系型数据的分布式处理系统MyCAT