2

私のプログラムは、データを保存するために巨大なオブジェクトを必要とするシミュレーションを実行します。ブロブのサイズは2〜3GBより大きくなります。MBPに十分なメモリがあるはずですが、Python(Mac OSXではPython2.7.3、ポートから)はすべてを使用しているようには見えず、システムは完全にフリーズします。

シミュレーションのステータスを保存するために、私はピクルスを使用しますが、大きすぎるオブジェクトに対しても機能しません。ピクルスがオブジェクトをダンプする前にメモリ内のオブジェクトを複製するようです...

質問:巨大なPythonデータ構造(dict、set、list)を常にメモリに保持せずに処理できる標準ライブラリはありますか?あるいは、Pythonを仮想メモリで強制的に実行する方法はありますか?(私はnumpyにあまり詳しくありませんが、この状況で役立ちますか?)

前もって感謝します!

4

1 に答える 1

2

64ビットバージョンのPythonを使用しているにもかかわらず、pickleまたは他の組み込みモジュールで問題が発生する場合は、代わりにPythonオブジェクトをオブジェクト指向データベースに格納できます。ここでは毎日大きなオブジェクト(〜10GB)を処理しており、そのためにZODBを使用しています。最速ではありませんが、仕事は終わります。

また、ドビンは良い選択肢かもしれないと聞いています。

于 2012-12-27T13:31:26.087 に答える