ファイルをjsonにロードすると、pythonのメモリ使用量が約1.8GBに急増し、そのメモリを解放できないようです。非常に単純なテストケースをまとめました:
with open("test_file.json", 'r') as f:
j = json.load(f)
サンプルの json ファイルを提供できなくて申し訳ありません。私のテスト ファイルには多くの機密情報が含まれていますが、文脈上、240MB 程度のファイルを扱っています。上記の 2 行を実行すると、前述の 1.8 GB のメモリが使用されます。その後、del j
メモリ使用量はまったく低下しません。それを a でフォローしても、gc.collect()
まだドロップしません。json モジュールをアンロードして、別の gc.collect を実行してみました。
メモリ プロファイリングを実行しようとしていますが、heapy は約 1 時間にわたって 100% の CPU を使用しており、まだ出力を生成していません。
誰にもアイデアはありますか?パッケージ化されたjsonモジュールではなく、cjsonを使用して上記も試しました。cjson は約 30% 少ないメモリを使用しましたが、それ以外はまったく同じ問題が表示されました。
Ubuntu サーバー 11.10 で Python 2.7.2 を実行しています。
メモリ プロファイラーをロードして、それがヒーピーよりも優れているかどうかを確認し、必要と思われる診断を提供できることをうれしく思います。私は、他の誰かが試してみるために提供できる大きなテスト json ファイルを探しています。