6

tl/dr: Guppy を使用して Python プログラムの現在のメモリ使用量を取得するにはどうすればよいですか? 簡単なコマンドはありますか?

guppy を使用して Python プログラムのメモリ使用量を追跡しようとしています。これは guppy を初めて使用するため、どのように動作するかよくわかりません。私が欲しいのは、シミュレーションで「時間」が進むにつれて合計使用量をプロットできるようにすることです。これは、私ができることの基本的なコードです。

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()だから私は合計サイズを取得するようなものを呼び出すことができるようにしたいと思います. これが単純なコマンドとして存在しないとしたらショックですが、これまでのところ、ドキュメントを調べても見つかりませんでした。おそらく文書化されていますが、私が探している場所ではありません。

4

1 に答える 1

7
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

Total sizeこれは、によって報告されたものと一致しています

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.>
于 2015-02-02T00:58:59.277 に答える