内存管理
python的内存管理相对于C,C++等语言来说要简单一些,相当于托管的状态,首先关于对象的创建和引用,python提供了对象池这样的一个容器,就是将一堆对象放置到一起,需要用的时候,就从对象池中取出,用完再放回对象池中,这样的优点是速度快,不需要每一次都新创建。
在对象池中放置的对象有,单个字符,如a,A,b,B…等,小整数,[-5, 257),单个英文单词,apple,banana等,但是对于大整数,多个单词组合出现的情况,对象池中不包含这些内容,需要新创建。
垃圾回收机制
垃圾回收是内存管理中非常重要的一环,garbage collection,对于新对象的话需要分配内存,但是如果分配了内存不回收,就会造成内存不够用,从而导致内存泄露,所以需要做识别垃圾对象,回收内存这一个工作。
在python中,垃圾回收方法主要使用的是引用计数方法,然后使用标记清除算法和分代收集算法辅助,来完成整个的垃圾回收机制。
引用计数机制
引用计数机制方法,主要就是判断这个变量的引用是否为0,如果为0,则回收这个变量,如果大于0,则不回收,采用这种方法的优点是简单实时,但是缺点是消耗的资源也比较多,需要耗费资源来进行计数,而且无法收集具有循环引用的变量,比如a变量引用了b变量,b变量也引用了a变量,那这样引用计数就永远