美文网首页
python 当创建大量实例时如何节省内存

python 当创建大量实例时如何节省内存

作者: 孙广宁 | 来源:发表于2022-05-28 23:25 被阅读0次
    8.4 我们可能会遇到程序创建了大量的实例(百万、千万级),会占用大量的内存
    • 通常可以在类定义中增加slots属性,以此来大大减少对内存的使用
    >>> 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带来的副作用是我们没法再对实例添加任何新的属性了,我们被限制为只允许使用slots中列出的那些属性名

    相关文章

      网友评论

          本文标题:python 当创建大量实例时如何节省内存

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