Python 的内存管理

Python的内存管理

  主要是利用了引用计数的功能,当创建一个变量或者变量被引用一次时该变量的引用计数就会+1,当被该变量被清除时该引用计数就会-1。当引用计数为零是就会被清除,释放内存空间。

    引用计数缺点:循环引用这样的情况下内存将永远无法清理该变量,由此引出了标记清除的功能,当判断是 循环引用时,计数器进行-1 

  为了避免频繁的申请和释放内存引入了,分代回收机制和缓存池

    分代回收解决频繁释放和扫描,该内部分为了0 代  1 代  2 代 三个代,当0代 的数量达到700 这个阀值得时候进行一次扫描与内存的释放,将未释放的提交交给1代,1代的在0代提交10次才进行一次扫描和清除,2代在1代的扫描10次才进行一次扫描和清除。

  为了避免频繁的申请内存空间的开销,引入了free_list ,该功能对于不懂类型的数据会保存不同数量的空的内存空间,提供给新创建的变量使用

  对于经常使用的变量又引出了缓存池,缓存池将在python启动时就创建好这些变量,用户在创建时并不会重新申请内存而是直接使用池中的

posted @ 2025-05-19 13:15  liuun  阅读(7)  评论(0)    收藏  举报