Python内存管理:从pymalloc到垃圾回收

First Steps into Memory Management in Python

很长一段时间,我在写Python代码时从不担心内存管理,直到一场关于Strong ref、weakref和垃圾回收的演讲让我意识到自己知其然不知其所以然。为了真正搞懂Python如何释放内存,我决定先理解它如何分配内存。在CPython 3.12中,小对象(≤512字节)由pymalloc管理,通过arena、pool和block的层级结构高效复用;大对象则直接调用系统malloc。释放内存同样分两种机制:引用计数处理常规对象,而垃圾回收器专门解决循环引用问题。我深刻体会到,一旦内存被分配,释放它并不总是能立即归还给操作系统,但我们可以控制引用的生命周期。这段探索Python Internals的旅程充满挑战,却也乐趣无穷。

一旦内存被分配,释放它并不总是能减少操作系统看到的内存占用。

同日更多故事

2026-10-07