python手动回收内存_python内存泄漏,python垃圾手动回收,1

部署的舆情系统,内存变大,找原因。

一个小例子。

def func():

local_list = list(range(10000000))

func()

time.sleep(200)

能够观察到,在sleep 200秒的时间内,程序的内存一直是200多M,虽然是函数局部变量,执行后在外部无法使用了,但仍然占据大内存。

再来一个

global_list = list(range(10000000))

del global_list

time.sleep(200)

能够观察到,在sleep 200秒的时间内,程序的内存一直也是200多M,引用计数变为0,但仍然占据大内存。

引入gc模块

在sleep之前插入 gc.collect()

查看内存,内存直接下降到10M内了,这是我期待的。

本篇的list代表一个巨大的内存的变量,以range(10000000)来指代。不要扯上什么xrange  range,我就是要用这个来简单指代一些巨大内存的变量。

实际过程中指代的是下载 上传巨大的html源码,爬虫过程中如果遇到mp4 avi连接没有过滤,下载了mp4的字符串就会是一个巨大的字符串。

之前有个地方,给njinx的网关接口上传结果,发现一直被njinx拒绝,请求不成功,而程序中遇到这种情况,一直等待60秒一直重试,导致永远不可能上传,内存永远降不下来。

下一篇介绍,监控内存和释放内存。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值