如何解决Python2的内存泄漏问题

本文探讨了Python2进程中遇到的内存泄漏问题,对比了原生pymalloc、无pymalloc和使用tcmalloc在处理大量对象时的内存管理效果。测试结果显示,tcmalloc在内存释放上表现出色,建议在生产环境中考虑使用tcmalloc编译的Python解释器以优化内存管理。
摘要由CSDN通过智能技术生成

python进程内存撑大了下不去,只能手动重启释放内存,这么坑爹的事情你遇到过吗?哪家内存分配器强?结果一目了然。

线上进程目前都是使用原生的Python内存分配器(pymalloc),在正常的情况下表现还算稳定,但如果来了一波类似于武神坛或者天下第一的比武大会,为手机瞬间带来了10倍于平时的流量,一阵狂虐之后,Python进程占用的内存被撑大就下不去了。关于Python的内存不释放问题,可以参考一下这两篇文章:python内存不释放原理Python memory management and TCMalloc

为了解决内存泄漏的问题,我专门使用了三种编译方式去编译Python2.7解释器

以下分别使用pymalloc、without-pymalloc、tcmalloc测试1千万个object的list内存释放情况(注:默认使用Python2.7)。

  • 测试环境
CPU 4 QEMU Virtual CPU version 2.1.0
内存 15G
操作系统内核 Linux onlinegame-229-88 3.2.0-4-amd
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值