gpt4 book ai didi

Python:如何估计/计算数据结构的内存占用?

转载 作者:太空狗 更新时间:2023-10-29 17:18:25 27 4
gpt4 key购买 nike

什么是估算对象内存占用的好方法?

相反,什么是衡量足迹的好方法?

例如,假设我有一个字典,其值是整数、浮点元组的列表:

d['key'] = [ (1131, 3.11e18), (9813, 2.48e19), (4991, 9.11e18) ]

我有 4G 的物理内存,想知道在溢出到交换区之前我可以在内存中存储大约多少行(键:值)。这是在 linux/ubuntu 8.04 和 OS X 10.5.6 上。

此外,找出程序实际内存占用的最佳方法是什么?我如何最好地确定它何时耗尽物理内存和溢出?

最佳答案

Guppy有一个很好的内存分析器(Heapy):

>>> from guppy import hpy
>>> hp = hpy()
>>> hp.setrelheap() # ignore all existing objects
>>> d = {}
>>> d['key'] = [ (1131, 3.11e18), (9813, 2.48e19), (4991, 9.11e18) ]
>>> hp.heap()
Partition of a set of 24 objects. Total size = 1464 bytes.
Index Count % Size % Cumulative % Kind (class / dict of class)
0 2 8 676 46 676 46 types.FrameType
1 6 25 220 15 896 61 str
2 6 25 184 13 1080 74 tuple
...

Heapy 的文档有点少,因此您可能需要深入研究网页或源代码,但它非常强大。还有一些articles这可能是相关的。

关于Python:如何估计/计算数据结构的内存占用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/749625/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com