12

私はpandas.DataFrameマルチスレッドコード(実際にはDataFrame呼び出されたのカスタムサブクラスSound)で使用しています。プログラムのメモリ使用量が徐々に10分を超えて増加し、最終的にコンピュータメモリの約100%に達してクラッシュするため、メモリリークが発生していることに気付きました。

objgraphを使用してこのリークを追跡しようとしましたが、インスタンスの数は常に増えてMyDataFrameいるはずですが、そうではないことがわかりました。メソッド内のすべてのスレッドがrunインスタンスを作成し、計算を行い、結果をファイルに保存します。終了します...したがって、参照は保持しないでください。

を使用objgraphすると、メモリ内のすべてのデータフレームに同様の参照グラフがあることがわかりました。

ここに画像の説明を入力してください

それが正常かどうかはわかりません...これが私のオブジェクトをメモリに保持しているようです。アイデア、アドバイス、洞察はありますか?

4

1 に答える 1

13

インデックス作成インフラストラクチャで何らかのメモリリークが発生していることを確認しました。上記の参照グラフが原因ではありません。ディスカッションをGitHubに移しましょう(SOはQ&A用です):

https://github.com/pydata/pandas/issues/2659

編集:これは実際にはメモリリークではないように見えますが、おそらくOSのメモリ割り当ての問題に関係しています。詳細については、githubの問題をご覧ください。

于 2013-01-08T21:35:53.490 に答える