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

来源:互联网 发布:嘻哈 摇滚 知乎 编辑:程序博客网 时间:2024/05/29 07:17

  • 使用的电脑系统: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 gca = range(1000*10000)del agc.collect()while True:    pass

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

Alt text


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

使用睡眠来优化CPU运行。

import gcimport timea = range(1000*10000)del agc.collect()while True:    time.sleep(1.0)    pass

Alt text


Python3 内存释放

未优化前的代码:

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

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

Alt text


优化内存的代码:

import gca = range(1000*10000)del agc.collect()while True:    pass

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

Alt text


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

import gcimport timea = range(1000*10000)del agc.collect()while True:    time.sleep(1.0)    pass

Alt text


总结

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


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

0 0
原创粉丝点击