Python是如何管理内存的?

4 投票
2 回答
505 浏览
提问于 2025-04-16 08:42

我最近在研究一种叫做内存数据库的东西,这让我想到了Python是怎么处理那些不依赖于连接的输入输出(IO)的,比如哈希、集合等等。这些是通过某种配置来管理的,还是根据资源动态调整的呢?有没有“简单”的方法可以查看资源对实际程序的影响,以及模拟不同硬件配置下性能的变化呢?

注意:如果这很重要的话,我正在关注的内存数据存储是Redis;还有一个Redis数据类型的封装,可以让它们看起来像Python中的数据类型。

2 个回答

1

虽然这不是你问的内容,但Dowser是一个Python工具,可以让你互动式地查看正在运行的程序的内存使用情况。这个工具非常有助于理解内存的使用和分配模式。

http://www.aminus.net/wiki/Dowser

7

Python会为应用程序请求的所有内存分配空间,基本上没有太多的选择。唯一需要考虑的问题是何时释放这些内存。(C)Python会立即释放那些不再被引用的内存(这个过程是固定的,不能调整)。如果内存是相互引用的(也就是形成了循环),那么就需要通过垃圾回收器来释放;这个过程是可以调整的。

把一些内存写入页面文件的决定是由操作系统来做的。

撰写回答