python中内存是动态的吗_python中的动态内存分配

在general中,您不能这样做,即使您删除了对某个对象的所有引用,也要留给python实现来重用或释放内存。在CPython上,可以调用^{}来强制运行垃圾回收。但是,虽然这可能会回收内存,但并不一定会将其返回到操作系统。

但是:numpy是一个扩展模块,它执行自己的任务,并管理自己的内存。

当我监视一个python进程的内存使用情况时,我看到在del(M)之后RAM的使用量(常驻集大小)下降了In [1]: import numpy as np

In [2]: M = np.zeros((1000,1000))

In [3]: del(M)

In [4]:

刚开始IPython:slackbox:~> ps -u 77778

USER PID %CPU %MEM VSZ RSS TT STAT STARTED TIME COMMAND

rsmith 77778 0.0 0.5 119644 22692 0 S+ 2:37PM 0:00.39 /usr/local/bin/py

导入numpy(1)之后:slackbox:~> ps -u 77778

USER PID %CPU %MEM VSZ RSS TT STAT STARTED TIME COMMAND

rsmith 77778 1.0 0.8 168548 32420 0 S+ 2:37PM 0:00.49 /usr/local/bin/py

创建数组(2)后:slackbox:~> ps -u 77778

USER PID %CPU %MEM VSZ RSS TT STAT STARTED TIME COMMAND

rsmith 77778 0.0 1.0 176740 40328 0 S+ 2:37PM 0:00.50 /usr/local/bin/py

在调用del(3)之后:slackbox:~> ps -u 77778

USER PID %CPU %MEM VSZ RSS TT STAT STARTED TIME COMMAND

rsmith 77778 0.0 0.8 168548 32496 0 S+ 2:37PM 0:00.50 /usr/local/bin/py

slackbox:~>

因此,在这种情况下,使用del()可以减少RAM的使用量。

注意,numpy有一个例外。Numpy可以使用另一个扩展库分配的内存。在这种情况下,numpy对象被标记为numpy不拥有内存,释放内存留给另一个库。

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值