Python的高级特性6:使用__slots__真的能省很多内存
2015-07-20 19:42
661 查看
在伯乐在线上看到了这篇文章,用Python的 __slots__ 节省9G内存,于是想测试下,对单个类,用__slots__节省内存效果会不会明显。
看完这个例子后,我们也会明白__slots__是用来干嘛的。
上述代码可以看到,python为对象a分配了64 Byte的内存,而为对象b分配了56 Byte的内存,总共节省了8 Byte,也就是节省了12.5%的内存空间。
综上:__slots__就是一个节省内存开销的内建方法。
看完这个例子后,我们也会明白__slots__是用来干嘛的。
:import sys :class test(object): : def __init__(self,name): : self.name = name : : :class test2(object): : __slots__ = ["name"] : def __init__(self,name): : self.name = name : :a = test('alex') :b = test2('lilei') :-- In [36]: print(sys.getsizeof(a)) 64 In [37]: print(sys.getsizeof(b)) 56 In [38]: 64-56 Out[38]: 8 In [40]: 8.0/64 Out[40]: 0.125
上述代码可以看到,python为对象a分配了64 Byte的内存,而为对象b分配了56 Byte的内存,总共节省了8 Byte,也就是节省了12.5%的内存空间。
综上:__slots__就是一个节省内存开销的内建方法。
相关文章推荐
- Python: zip()的使用
- Python内存管理
- java调用python(jython)的报错
- python程序报"iccp known incorrect srgb profile" 警告
- python模块:调用系统命令模块subprocess等
- python中调用命令行命令
- python命令行退出
- python time模块
- python 入门(一)
- Python的lambda函数与排序
- Python变量的作用域
- python对json数据的处理
- Python简单调用MySQL存储过程并获得返回值的方法
- python实现输出日历
- 用python搭建临时的服务器
- python实现Telnet远程登陆到设备并执行命令
- Python学习笔记——Django配置问题1:syncdb
- python脚本语言3
- Python *与** 参数问题
- Google's Python Class(四)——Python 排序