python内存管理机制
Posted ivyharding_wang
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python内存管理机制相关的知识,希望对你有一定的参考价值。
python的内存管理管理机制: 引入计数,垃圾回收和内存池机制
首先明确 变量和对象 概念
1. 变量,通过变量指针引用对象,变量指针指向具体对象的内存空间,取对象的值
2. 对象,类型已知,每个对象都包含一个头部信息(类型标识符和引用计数器)
第一、 引用计数
第二、垃圾回收
当python中的对象越来越多,占据越来越大的内存,启动垃圾回收(garbage collection),将没用的而对象清除。
原理
当python中某个对象的引用计数将为0时,说明没有任何引用指向该对象,该对象就成为要被回收的垃圾。
注意
1、垃圾回收时,Python不能进行其它的任务,频繁的垃圾回收将大大降低Python的工作效率;
2、Python只会在特定条件下,自动启动垃圾回收(垃圾对象少就没必要回收)
3、当Python运行时,会记录其中分配对象(object allocation)和取消分配对象(object deallocation)的次数。当两者的差值高于某个阈值时,垃圾回收才会启动。
分代回收
Python将所有的对象分为0,1,2三代;
所有的新建对象都是0代对象;
当某一代对象经历过垃圾回收,依然存活,就被归入下一代对象。
第三、内存池机制
Python中有分为大内存和小内存:(256K为界限分大小内存)
1、大内存使用malloc进行分配
2、小内存使用内存池进行分配
3、Python的内存池(金字塔)
以上是关于python内存管理机制的主要内容,如果未能解决你的问题,请参考以下文章