Python 什么是自由列表(PyDict_ClearFreeList所指)?

Python 什么是自由列表(PyDict_ClearFreeList所指)?,python,dictionary,python-c-api,python-internals,Python,Dictionary,Python C Api,Python Internals,有一个用于Python字典的C API函数,名为。但是,文档字符串相当稀疏: int PyDict\u ClearFreeList() 清除免费列表。返回已释放项目的总数 3.3版中的新版本 这个函数没有参数,所以它(可能)与任何特定的字典都没有关系 它返回一个int。这看起来很奇怪,因为这表明它引用了一些C状态,因为python“类”总是有一个Py\u ssize\t大小 那么这个“自由列表”到底是什么呢?你是正确的,自由列表与任何特定的词典都没有关系;事实上,它适用于许多数据类型(例如) 空

有一个用于Python字典的C API函数,名为。但是,文档字符串相当稀疏:

int PyDict\u ClearFreeList()

清除免费列表。返回已释放项目的总数

3.3版中的新版本

这个函数没有参数,所以它(可能)与任何特定的字典都没有关系

它返回一个
int
。这看起来很奇怪,因为这表明它引用了一些C状态,因为python“类”总是有一个
Py\u ssize\t
大小


那么这个“自由列表”到底是什么呢?

你是正确的,自由列表与任何特定的词典都没有关系;事实上,它适用于许多数据类型(例如)

空闲列表是Python保存它可以放置东西的空闲位置列表的地方,即包含它不再使用但尚未释放回全局Python内存池或系统的对象的内存

Per:

为了加快内存分配(和重用),Python使用了许多 小对象的列表。每个列表将包含类似的对象 大小:将有一个1到8字节大小的对象列表,一个用于9字节 当需要创建一个小对象时,我们可以重用 列表中的空闲块,或者我们分配一个新块


你是正确的,免费列表与任何特定的词典无关;事实上,它适用于许多数据类型(例如)

空闲列表是Python保存它可以放置东西的空闲位置列表的地方,即包含它不再使用但尚未释放回全局Python内存池或系统的对象的内存

Per:

为了加快内存分配(和重用),Python使用了许多 小对象的列表。每个列表将包含类似的对象 大小:将有一个1到8字节大小的对象列表,一个用于9字节 当需要创建一个小对象时,我们可以重用 列表中的空闲块,或者我们分配一个新块


您对dictobject.c源代码熟悉吗?如果你不是C专家,不要担心。你可以从这些评论中了解到很多关于dicts是如何工作的。你对dictobject.c的源代码熟悉吗?如果你不是C专家,不要担心。你可以从这些评论中学到很多关于dicts是如何工作的。