Learning Python 017 — Python2 和 Python3 的内存释放

本文探讨了Python2和Python3中内存释放的差异,通过实验代码展示内存优化的方法,包括手动释放和利用Python3库。尽管Python3在内存管理上更完善,但某些情况下优化仍能有效减少内存占用。作者对Python的未来发展持积极态度。

  • 使用的电脑系统:Windows 10 64位
  • 使用的开发集成环境:PyCharm 2016.1.4
  • 使用的Python的版本:python 2.7.10 和 python 3.5.0

学习Python的内存释放知识点的动机

之前我学过很多Python的程序,偶然的一次,我打开任务管理器,看到我写的程序,运行时占用了大量的内存,所以,我希望学会如何释放内存,来优化我的程序,也不给电脑照成太大的负担,所以,我想学会:Python的内存释放这个知识点。


参考网站: gc模块–Python内存释放

下面写几个实验程序,里面都是使用range() 函数来分配内存空间的。range()函数的详细介绍,请见这篇博客:range()函数在python2 和 python3中的使用介绍

Python2 内存释放

未优化前的代码:

a = range(1000*10000)
while True:
    pass

Alt text


优化内存的代码:

使用手动释放内存的方法来优化内存。

import gc
a = range(1000*10000)
del a
gc.collect()
while True:
    pass

可以看出,占用的内存空间明显减小了。

Alt text


既优化了内存,也优化了CPU 的代码

使用睡眠来优化CPU运行。

import gc
import time

a = range(1000*10000)
del a
gc.collect()
while True:
    time.sleep(1.0)
    pass

Alt text


Python3 内存释放

未优化前的代码:

a = range(1000*10000)
while True:
    pass

使用Python3库运行未优化的代码,所需要的消耗的内存空间和使用Python2运行优化内存的代码消耗的内存空间 差不多。

Alt text


优化内存的代码:

import gc
a = range(1000*10000)
del a
gc.collect()
while True:
    pass

可以看出,所暂用的内存空间没有任何增减。

Alt text


既优化了内存,也优化了CPU 的代码:

import gc
import time

a = range(1000*10000)
del a
gc.collect()
while True:
    time.sleep(1.0)
    pass

Alt text


总结

Python3 真的是比 Python2 更加的完善了,从这一点上也可以看出来,Python语言是第4代语言里面非常杰出的语言。随着它的不断发展,它会运行速度慢和内存消耗大的缺点会慢慢的消失(因为:许多Python内置库是用C语言写的)。我看好Python。


请访问:http://www.aobosir.com/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值