1. ホーム
  2. python

[解決済み] どのPythonのメモリプロファイラがお勧めですか?[クローズド]

2022-03-14 12:19:48

質問

Pythonアプリケーションのメモリ使用量を知りたいのですが、特にどのコードブロック/部分/オブジェクトが最もメモリを消費しているかを知りたいのです。 Googleの検索では、商業的なものは次のとおりです。 Python Memory Validator (Windowsのみ)。

また、オープンソースのものは PySizer ヒーピー .

誰も試したことがないので、どれが一番検討しやすいか知りたかった。

  1. 最も詳細な情報が得られる。

  2. 自分のコードに最小限の変更を加えるか、まったく変更しないことです。

どのように解決するのですか?

グッピー3 は、使い方が非常に簡単です。 コードのどこかの時点で、次のように書く必要があります。

from guppy import hpy
h = hpy()
print(h.heap())

すると、次のような出力が得られます。

Partition of a set of 132527 objects. Total size = 8301532 bytes.
Index  Count   %     Size   % Cumulative  % Kind (class / dict of class)
0  35144  27  2140412  26   2140412  26 str
1  38397  29  1309020  16   3449432  42 tuple
2    530   0   739856   9   4189288  50 dict (no owner)

また、オブジェクトがどこから参照されているかを調べ、それに関する統計を取ることもできますが、それに関するドキュメントはなぜか少しまばらです。

Tkで書かれたグラフィカルなブラウザもあります。

Python 2.xの場合は ヒーピー .