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
优化内存的代码:
使用手动释放内存的方法来优化内存。
import gca = range(1000*10000)del agc.collect()while True: pass
可以看出,占用的内存空间明显减小了。
既优化了内存,也优化了CPU 的代码
使用睡眠来优化CPU运行。
import gcimport timea = range(1000*10000)del agc.collect()while True: time.sleep(1.0) pass
Python3 内存释放
未优化前的代码:
a = range(1000*10000)while True: pass
使用Python3库运行未优化的代码,所需要的消耗的内存空间和使用Python2运行优化内存的代码消耗的内存空间 差不多。
优化内存的代码:
import gca = range(1000*10000)del agc.collect()while True: pass
可以看出,所暂用的内存空间没有任何增减。
既优化了内存,也优化了CPU 的代码:
import gcimport timea = range(1000*10000)del agc.collect()while True: time.sleep(1.0) pass
总结
Python3 真的是比 Python2 更加的完善了,从这一点上也可以看出来,Python语言是第4代语言里面非常杰出的语言。随着它的不断发展,它会运行速度慢和内存消耗大的缺点会慢慢的消失(因为:许多Python内置库是用C语言写的)。我看好Python。
请访问:http://www.aobosir.com/
0 0
- Learning Python 017 — Python2 和 Python3 的内存释放
- Learning Python 014 使用 pip 工具的注意事项 --- 混淆的python2 和 python3
- Learning Python 018 Python2 和 Python3 中 range()函数的使用
- 【Python】学习笔记——-Python2 和 Python3的区别
- Python python2和python3的安装及切换使用
- Python对字符串的操作总结,适用于python2和python3
- Python进阶(七)-浅谈python3和Python2的区别
- python:python2版本和python3版本闹出来的纠结
- python-Windows下Anaconda2(Python2)和Anaconda3(Python3)的共存
- python3和python2的区别
- python3和python2的区别
- python2和python3的区别
- python2 和Python3的区别
- python2和python3的区别
- python2和python3的区别
- python2和python3的不同点
- Python2和Python3的区别
- python2和python3的区别
- 流媒体性能指标
- ROC曲线
- maven插件tomcat7:run执行时遇到了一个问题
- 流媒体CDN带宽费用计算
- 浮点型的储存方式
- Learning Python 017 — Python2 和 Python3 的内存释放
- WPF自定义控件与样式(2)-自定义按钮FButton
- Spring的依赖注入——概念
- 反转链表
- java基础知识问答-数据类型
- RecyclerView嵌套RecyclerView
- 封装 ,继承, 多态,抽象类 ,接口
- 快速熟悉 PyQt5 与 Eric6 的极速 GUI 开发
- php基础系列----8php中错误和异常的处理