Python是如何进行内存管理的

[复制链接]
查看11 | 回复2 | 2012-11-25 11:33:03 | 显示全部楼层 |阅读模式
Python提供了对内存的垃圾收集机制,但是它将不用的内存放到内存池而不是返回给操作系统。Python中所有小于256个字节的对象都使用pymalloc实现的分配器,而大的对象则使用系统的malloc。另外Python对象,如整数,浮点数和List,都有其独立的私有内存池,对象间不共享他们的内存池。也就是说如果你分配又释放了大量的整数,用于缓存这些整数的内存就不能再分配给浮点数。在Python中,许多时候申请的内存都是小块的内存,这些小块内存在申请后,很快又会被释放,由于这些内存的申请并不是为了创建对象,所以并没有对象一级的内存池机制。这就意味着Python在运行期间会大量地执行malloc和free的操作,频繁地在用户态和核心态之间进行切换...
回复

使用道具 举报

千问 | 2012-11-25 11:33:03 | 显示全部楼层
Python的内存管理,一般从以下三个方面来说:1)对象的引用计数机制(四增五减)2)垃圾回收机制(手动自动,分代回收)3)内存池机制(大m小p)1)对象的引用计数机制要保持追踪内存中的对象,Python使用了引用计数这一简单的技术。sys.getrefcount(a)可以查看a对象的引用计数,但是比正常计数大1,因为调用函数的时候传入a...
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行