gpt4 book ai didi

python - 从 Guppy 获取当前内存使用情况的简单方法

转载 作者:行者123 更新时间:2023-12-01 04:51:47 27 4
gpt4 key购买 nike

tl/dr:如何使用 Guppy 获取 python 程序的当前内存使用情况?有没有简单的命令?

我正在尝试使用 guppy 跟踪 python 程序中的内存使用情况。这是我第一次使用孔雀鱼,所以我不太确定它的行为方式。我想要的是能够随着模拟中“时间”的进展绘制总使用情况。这是我能做的一些基本代码:

from guppy import hpy
import networkx as nx

h = hpy()
L=[1,2,3]

h.heap()

> Partition of a set of 89849 objects. Total size = 12530016 bytes.
> Index Count % Size % Cumulative % Kind (class / dict of class)
> 0 40337 45 3638400 29 3638400 29 str
> 1 21681 24 1874216 15 5512616 44 tuple
> 2 1435 2 1262344 10 6774960 54 dict (no owner)

但我只想知道当前大小是多少(12530016 字节)。所以我希望能够调用类似 h.total() 的方法来获取总大小。如果这不作为一个简单的命令存在,我会感到震惊,但到目前为止,浏览文档我还没有找到它。它可能已记录在案,只是不在我要查找的位置。

最佳答案

x = h.heap()
x.size

返回总大小。例如:

from guppy import hpy
import networkx as nx

h = hpy()

num_nodes = 1000
num_edges = 5000
G = nx.gnm_random_graph(num_nodes, num_edges)

x = h.heap()
print(x.size)

打印

19820968

报告的 总大小一致
print(x)
# Partition of a set of 118369 objects. Total size = 19820904 bytes.
# Index Count % Size % Cumulative % Kind (class / dict of class)
# 0 51057 43 6905536 35 6905536 35 str
# 1 7726 7 3683536 19 10589072 53 dict (no owner)
# 2 28416 24 2523064 13 13112136 66 tuple
# 3 516 0 1641312 8 14753448 74 dict of module
# 4 7446 6 953088 5 15706536 79 types.CodeType
# 5 6950 6 834000 4 16540536 83 function
# 6 584 0 628160 3 17168696 87 dict of type
# 7 584 0 523144 3 17691840 89 type
# 8 169 0 461696 2 18153536 92 unicode
# 9 174 0 181584 1 18335120 93 dict of class
# <235 more rows. Type e.g. '_.more' to view.>

关于python - 从 Guppy 获取当前内存使用情况的简单方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28269513/

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