python中的内存管理,从浅层次来说,可以分为3个方面来讲:
1,引用计数:
python中引用计数,为了跟踪内存的对象
当创建对象的时候即被引用了,当对象不再被使用时,即某个对象的引用计数为0,它被垃圾回收。
2,垃圾回收机制:
python可以不事先声明变量类型而直接对变量进行赋值,垃圾回收器会去检查哪些计数为0的对象,然后清除其在内存的空间
还有一种是循环垃圾回收器,存在某种关系(a引用b,b引用a,两个对象循环引用,导致引用计数不为0)
3,内存池机制:
在python中每次创建对象时候都会申请小块的内存,这些小块被使用后很快就被释放了,由于这些内存不是为了创建对象,所以并没有对象的一级内存池机制,这导致python在运行的时候会频繁地调用malloc和free操作,频繁的在用户态和核心态切换,使得程序效率变得低下,所以就引入内存池机制,来管理小块内存的申请和释放。