11

大きなファイルをフィードすると、MemoryError で終了する Python プログラムがあります。何がメモリを使用しているかを把握するために使用できるツールはありますか?

このプログラムは、小さな入力ファイルで正常に実行されました。このプログラムには明らかにスケーラビリティの改善が必要です。私はちょうどどこを理解しようとしています。賢明な人がかつて言ったように、「最適化する前にベンチマークを行う」。

(避けられない「RAMを追加する」という答えを未然に防ぐために:これは4GBのRAMを搭載した32ビットのWinXPボックスで実行されているため、Pythonは2GBの使用可能なメモリにアクセスできます。メモリを追加することは技術的に不可能です.64でPCを再インストールする-bit Windows は実用的ではありません。)

編集: おっと、これはどの Python メモリ プロファイラーが推奨されますか?の複製です。

4

4 に答える 4

10

Heapyは、必要なツールの種類である Python 用のメモリ プロファイラーです。

于 2009-11-05T16:39:43.417 に答える
4

最も簡単で軽量な方法は、Pythonの組み込みのメモリ クエリ機能sys.getsizeofを使用することです。たとえば、オブジェクトに対して実行して問題を減らし (つまり、ファイルを小さくする)、多くのメモリを必要とするものを確認します。

于 2009-11-05T16:51:25.497 に答える
1

あなたはツールの推奨を求めました:

Python Memory Validatorを使用すると、Pythonアプリケーションのメモリ使用量、割り当て場所、GCコレクション、オブジェクトインスタンス、メモリスナップショットなどを監視できます。Windowsのみ。

http://www.softwareverify.com/python/memory/index.html

免責事項:私はこのソフトウェアの作成に関わっていました。

于 2010-02-05T17:53:34.963 に答える