# 十、内存管理

对于计算机来说，最重要的两个部分就是 CPU 和内存。它们不能离开对方独立工作，为了保证计算机的性能，我们必须很好的利用并管理它们。

当设计一门编程语言时，作者首先就得思考：“用户该如何管理计算机的内存？”。

这个问题有许多答案。取决于你是否希望有简单的接口，语言是否可以跨平台，相较于稳定性你是否更看中性能。作者必须就这些问题做出权衡。

这些问题 Python 的设计者已经帮你做出了决定，同时也留下了一些东西让使用者自己决定。在本章，首先你将探究 C 的内存管理机制，因为 CPython 是基于 C 语言编写的。接着你将了解 Python 内存管理最重要的两个部分，**引用计数**和**垃圾回收**。

在本章的最后，你将了解 CPython 如何分配操作系统的内存，对象是如何申请内存并释放的，当出现内存泄漏时 CPython 会怎么处理。
