python 内存管理和垃圾回收

内存池管理

  • 一切皆为引用(动态语言)
  • 常量和短字符串会缓存
  • 底层通过c的malloc和free进行内存分配和释放(对象大小大于256会在此分配),每一次malloc会分配256k
  • 如果请求分配的内存在1~256字节之间就使用自己的内存管理系统
  • 简单的python对象,例如数值、字符串、元组,采用的是深拷贝
  • 复杂python对象,dict、list等,浅拷贝
  • 回收不会立即free
  • 参考链接

python垃圾回收:

  1. (主)引用计数垃圾回收,标记清除消除循环引用问题
  2. (辅)分代回收(python对象分为0、1、2代,对象若经历一定次数的对象回收,自动归入下一代),不直接free内存,加速对象创建。
    参考链接

猜你喜欢

转载自blog.csdn.net/qq_17612199/article/details/80280027