美文网首页
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