2

他のオブジェクトへの参照を保持することでネットワークを形成するオブジェクトがたくさんあります。すべてのオブジェクト (ノード) には、そのプロパティである dict があります。

現在、これらのオブジェクトを (ファイルに?) 格納し、後ですべてをメモリに再ロードする高速な方法を探しています (ランダム アクセスは必要ありません)。データはメモリ内に約 300MB あり、SQL 形式からロードするのに 40 秒かかりますが、アクセスを高速化するためにデータをキャッシュしたいと考えています。

どの方法をお勧めしますか?

( getstateをいじろうとしたにもかかわらず、再帰エラーが原因で私のピクルの試みは失敗しました:(とにかく速い何かがあるのでしょうか?:))

4

3 に答える 3

0

ピクルスは私の最初の選択です。しかし、うまくいかなかったと言うので、それがshelve の主な目的ではないと思っていても、shelveを試してみたくなるかもしれません。

本当に、これには Pickle を使用する必要があります。おそらく、いくつかのコードを投稿して、それが機能しない理由を調べて理解できるようにすることができます

于 2011-05-25T17:39:02.220 に答える
0

「pickle モジュールは、既にシリアル化されたオブジェクトを追跡するため、後で同じオブジェクトへの参照が再度シリアル化されることはありません。」だからそれは可能です。おそらく、で再帰制限を増やしてsys.setrecursionlimitください。

Python の Pickle / cPickle を使用して最大再帰深度に到達する

于 2011-05-25T17:39:27.553 に答える