展开全部
内存管理架构:
1.python的内存管理机制由两部分组成,其由PYMALLOC_DEBUG控制,在debug模式下的内存管理机制和正常模32313133353236313431303231363533e78988e69d8331333365636539式下的内存管理模式。
2.python的内存管理机制可以抽象成一种层次结构:
最底层:操作系统提供的内存管理接口,由其实现并维护
第一层:对最底层的包装,为python提供统一的原生内存管理接口和面向python中类型的内存分配器。简单地说,C语言中的malloc是需要用户自行提供申请空间的大小,而python可以由类型和数量自行判断内存空间大小
第二层:提供创建python对象的接口
第三层:为常用对象提供更抽象的内存管理策略,如整数,字符串,主要是对象缓存池机制
小块空间的内存池
1.python的内存池机制,用于小块内存的申请和释放,同样也有四层层次结构组成,分别是block,pool,arena和内存池。
第一层block:确定大小的内存块,大小有相应的划分且有上限
第二层pool:一组block的集合叫pool,最重要的pool_header和freeblock链表
第三层arena:一组pool的集合,分已使用和未使用两种状态
第四层内存池:Python中当申请内存超过某个值就启动malloc行为,当低于这个值才进行内存池申请内存,根据申请内存的大小获得对应的序号,如果已使用的pool中有可用的pool,则用其分配block&