081、Python内存管理:引用计数与垃圾回收
从一次内存泄漏排查说起
上周排查线上服务时发现一个诡异现象:一个简单的数据处理服务,运行几天后内存占用从200MB逐渐膨胀到2GB。用tracemalloc抓取内存快照对比,发现大量dict对象没有被释放——明明处理完的数据已经离开了作用域。最终定位到问题:一个第三方库的回调函数里,把对象塞进了全局列表,却忘了在回调结束时清理。这让我重新审视Python的内存管理机制,很多开发者觉得“Python有GC就万事大吉”,其实这里面的坑远比想象中多。
引用计数:Python的第一道防线
Python内存管理的核心是引用计数,每个对象都维护着一个计数器,记录有多少引用指向它。这个机制是实时生效的,不像某些语言的GC需要暂停整个程序。
importsys# 看看引用计数怎么工作a=[]print