美文网首页
python学习笔记:当创建大量实例是如何节省内存

python学习笔记:当创建大量实例是如何节省内存

作者: 潼潼夏 | 来源:发表于2020-02-15 19:51 被阅读0次

问题

当创建大量(比如百万级)实例,占用了大量内存

解决方案

在类定义中增加slot属性,大量减少对内存的使用。
示例1:

class Date:
      __slots__ = ['year','month','day']
      def __init__(self, year, month, day):
          self.year = year
          self.month  = month
          self.day = day

当定义了slots属性时,python对实例采用更加紧凑的内部表示。不再为每个实例都创建一个dict字典,现在的实例围绕着一个固定长度的小型数组来构建的。在slots中列出的属性名会在内部映射到这个数组的特定索引上。
缺点:使用slots,无法再对实例添加新的属性;不支持某些特定功能,如多重继承。

相关文章

网友评论

      本文标题:python学习笔记:当创建大量实例是如何节省内存

      本文链接:https://www.haomeiwen.com/subject/ubpyfhtx.html