私はpandas.DataFrame
マルチスレッドコード(実際にはDataFrame
呼び出されたのカスタムサブクラスSound
)で使用しています。プログラムのメモリ使用量が徐々に10分を超えて増加し、最終的にコンピュータメモリの約100%に達してクラッシュするため、メモリリークが発生していることに気付きました。
objgraphを使用してこのリークを追跡しようとしましたが、インスタンスの数は常に増えてMyDataFrame
いるはずですが、そうではないことがわかりました。メソッド内のすべてのスレッドがrun
インスタンスを作成し、計算を行い、結果をファイルに保存します。終了します...したがって、参照は保持しないでください。
を使用objgraph
すると、メモリ内のすべてのデータフレームに同様の参照グラフがあることがわかりました。
それが正常かどうかはわかりません...これが私のオブジェクトをメモリに保持しているようです。アイデア、アドバイス、洞察はありますか?