码迷,mamicode.com
首页 > 编程语言 > 详细

Python的高级特性7:使用__slots__真的能省很多内存

时间:2015-07-20 21:05:33      阅读:154      评论:0      收藏:0      [点我收藏+]

标签:

在伯乐在线上看到了这篇文章,用Python的 __slots__ 节省9G内存,于是想测试下,对单个类,用__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的高级特性7:使用__slots__真的能省很多内存

标签:

原文地址:http://www.cnblogs.com/alexkn/p/4662466.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!