2

作業中の Python プログラムでメモリ リークを特定しようとしています。現在、Mac OS 64 ビットで Python 2.7.4 を実行しています。問題を突き止めるために heap をインストールしました。

このプログラムには、shelf モジュールを使用した大規模なデータベースの作成、保存、読み取りが含まれます。メモリの問題が発生する可能性があることを知っている writeback オプションは使用していません。

プログラムの実行中に大量の使用量が表示されますが、メモリはほぼ一定です。それでも、私の活動モニターは、メモリが急速に増加していることを示しています。15 分以内に、プロセスがすべてのシステム メモリ (16 GB) を消費し、ページ アウトが発生し始めました。heapy がこれを適切に追跡していない理由は何ですか?

4

1 に答える 1

0

この素晴らしい記事をご覧ください。ほとんどの場合、メモリ リークではなく、メモリの断片化が発生しています。私が見つけた最善の回避策は、大規模なワーキング セット操作の実際の出力を特定し、大規模なデータセットを新しいプロセスに読み込み、出力を計算してから、その出力を元のプロセスに戻すことです。

この回答には、いくつかの優れた洞察と例もあります。あなたの質問には、PyPy の使用を妨げるようなものは何もありません。

于 2013-05-17T19:23:11.313 に答える