1

つまり、データベースの場合と同様に、データに効率的にアクセスして更新できます。

私の特定の状況は次のとおりです。

私は非常に大規模なモンテカルロシミュレーションと最適化を行っており、データは次のようにフォーマットされた、それぞれ 60 万以上のタプルキーを持ついくつかの辞書にソートされています。

simple_dictionary[(year, month, day, hour, minute)] = value_or_small_list_or_small_numpy_array

上記は、ネストされた辞書よりも実際にはわずかに遅いことが判明しました。

simple_dictionary[year][month][day][hour][minute] = value_or_small_list_or_small_numpy_array

これにより、後者の形式は前者よりも少ないキーをチェックすることが信じられます。間違っている場合は修正してください。この仮定は私のコードに基づいています (投稿するには長すぎます)。私のコードは の後に新しいキーを作成しません__init__が、反復ごとに少なくとも 1 回はすべてのキーと値のペアが呼び出されます。ただし、すべての値が更新されるわけではありません。

これが RAM から実行できる/実行する必要があると仮定すると、上記のコードに代わるより効率的な方法はありますか?

4

1 に答える 1

3

インメモリsqlite3データベースを試すことを考えましたか?それはあなたが得ることができるのとほぼ同じくらい「データベースに似ている」でしょう、そしてそれはすべてメモリにあります。:)

接続文字列:memory:を使用すると、メモリ内データベースが得られます。

于 2012-12-03T19:38:52.577 に答える