Python是如何进行内存管理的

生活 2020-09-13 04:50:45 1个回答   ()人看过

Python进行内存管理的方式介绍如下:

一、垃圾回收:

1、当内存中有不再使用的部分时,垃圾收集器就会把它们清理掉,它会去检查那些引用计数为0的对象,然后清除其在内存的空间,除了引用计数为0的会被清除,还有一种情况也会被垃圾收集器清掉,即当两个对象相互引用时,它们本身其他的引用已经为0的情况;

2、垃圾回收机制还有一个循环垃圾回收器,确保释放循环引用对象,即a引用b,、b引用a,,导致其引用计数永远不为0。

3、在Python中,许多时候申请的内存都是小块的内存,这些小块内存在申请后,很快又会被释放,由于这些内存的申请并不是为了创建对象,所以并没有对象一级的内存池机制,这就意味着Python在运行期间会大量地执行malloc和free的操作,频繁地在用户态和核心态之间进行切换,这将严重影响Python的执行效率,为了加速Python的执行效率,Python引入了一个内存池机制,用于管理对小块内存的申请和释放。

二、内存池机制:

1、Python提供了对内存的垃圾收集机制,但是它将不用的内存放到内存池而不是返回给操作系统;

2、Python中所有小于256个字节的对象都使用Pymalloc实现的分配器,而大的对象则使用系统的Malloc;

3、对象,如整数、浮点数和List,都有其独立的私有内存池,对象间不共享他们的内存池,即如果分配又释放了大量的整数,用于缓存这些整数的内存就不能再分配给浮点数。;

Python是如何进行内存管理的

顶一下 ()  踩一下 () 

共有条评论     登录   注册  剩余:2000

友情链接: