2016-02-18 11 views
5

IPythonのノートブックで非常に大きなデータセットを扱うことがあります。時には、1枚のパンダのDataFrameが1GB以上のメモリを占有することがあります。そのため、多くのコピーを保存する余裕はありません。IPythonのエラーに結びついたメモリを解放するノート

私が見つけたのは、このような行列で操作を実行しようとするとエラーが発生した場合、メモリが戻ってこないということです。断続的な変数はまだどこかで追跡されています。問題は、私はどこでそれを解放することができないのか分からない!

たとえば、次の図は、セルを繰り返し実行した後のメモリ消費量を示しています(グラフの各ステップはセルを実行しようとしています)。新しいメモリブロックが消費されるたびに、それは決して解放されません。

Memory usage while executing a cell that raises an error

このメモリは行くとどのようにそれを解放する場所誰でも知っていますか?また、これがバグ(メモリリークなど)の場合は、どのように表示されますか?実際に設計されたコードの副作用である場合、バグとして報告したくありませんでした(例:IPythonはキャッシングしていますが、キャッシングシステムを乱用しています)。

ありがとうございました!

+0

私は、Jupyterがあまりにも多くのRAMを消費するという同様の問題があります。私はまだ問題の正確な原因を特定していませんでしたが、Jupyterは数日間サーバー上にとどまり、ノートブックは頻繁に開閉されます。私はこのhttps://github.com/ipython/ipython/issues/8267の問題に遭遇し、何らかの形で相互接続されている可能性があると考えました。提案された解決策(jsonschema更新)は私を助けませんでしたが、あなたのために働くかもしれません –

+0

ありがとうございます@Pocinのリンクです。もう一つの問題は、jupyterプロジェクト(https://github.com/jupyter/notebook/issues/642)で発生しています。おそらく、開発者がその問題に関する詳細情報を得るのを助けるために、あなたの経験と共にコメントを追加することができます。 –

+0

あなたはどのプラットフォームを使用していますか、メモリを監視するために何を使用していますか?関連する問題を追跡しようとしています.. – dartdog

答えて

2

githubに関する議論では、issue 642に関して、jsonschema 2.4には既知のメモリリークがあります。 jsonschema 2.5.1にアップデートした後、私はもはやこの問題を抱えていません。

古いフレームワークを使用してこの問題が発生した場合は、少なくともjsonschemaをアップグレードする必要があります。

関連する問題