我正在使用 iPython 来运行我的代码。我想知道是否有任何模块或命令可以让我检查对象的内存使用情况。例如:
In [1]: a = range(10000)
In [2]: %memusage a
Out[2]: 1MB
就像是%memusage <object>
并返回该对象使用的内存。
复制
找出Python中的对象使用了多少内存 https://stackoverflow.com/questions/33978/find-out-how-much-memory-is-being-used-by-an-object-in-python
不幸的是,这是不可能的,但有多种方法可以近似答案:
对于非常简单的对象(例如整数、字符串、浮点数、双精度数),这些对象或多或少表示为简单的 C 语言类型,您可以简单地计算字节数,如下所示约翰·穆德的解决方案 https://stackoverflow.com/a/563921/1922357.
对于更复杂的对象,一个好的近似方法是使用 cPickle.dumps 将对象序列化为字符串。字符串的长度可以很好地近似存储对象所需的内存量。
解决方案 2 有一个大问题,即对象通常包含对其他对象的引用。例如,字典包含字符串键和其他对象作为值。那些其他对象可能是共享的。由于pickle总是尝试对对象进行完整的序列化,因此它总是会高估存储对象所需的内存量。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)