Python源码阅读-内存管理机制(二)

482 查看

Python 的内存分配策略

arena

arena: 多个pool聚合的结果

arena size

pool的大小默认值位4KB

arena的大小默认值256KB, 能放置 256/4=64 个pool

obmalloc.c中代码

arena 结构

一个完整的arena = arena_object + pool集合

arena_object的作用

pool_headerarena_object

arena的两种状态

arena存在两种状态: 未使用(没有建立联系)/可用(建立了联系)

全局由两个链表维护着

arena的初始化

首先, 来看下初始化相关的一些参数定义

代码obmalloc.c