什么真正占用了Python的内存?

时间:2017-05-19 20:29:35

标签: python memory

假设我有1000个同一个类的不同对象被实例化,我将它分配给一个字典,其字符串为1到1000之间的整数,其值为1000个对象。

现在,我创建了另一个字典,其键是元组(obj1,1),(obj2,2)等。对象是相同的1000个对象。其值为1到1000。

这两个字典的存在是否意味着内存使用量会翻倍,因为每个字典的键和值都有1000个对象?

他们不应该,对吧?因为我们不是在创建新对象,所以我们只是分配对这些对象的引用。因此,我可以将1000个类似的字典与这些对象一起作为值或键(元组的一部分),并且内存使用量没有显着增加。

是吗?

1 个答案:

答案 0 :(得分:1)

不会复制对象,但会引用它们。

如果您的对象很小(例如整数),则元组或字典列表的开销很大。

如果您的对象很大(例如非常长的唯一字符串),与对象的大小相比,开销要小得多,因此由于创建了相同对象的另一个dict /列表,内存使用量不会增加太多