Python の大きなリスト、dict、または配列のパフォーマンス特性を理解するための助けを探しています。一時的に保存する必要がある約 100 万のキーと値のペアがあります (これは、来年にはおそらく 1000 万に増えるでしょう)。これらのキーは、0 から約 1.1M の範囲のデータベース ID (いくつかのギャップあり) であり、値は float です。
ページランクを計算しているので、各 ID を値 1 で初期化し、メモリ内で検索して約 10 回更新してからデータベースに保存します。
データベースIDを配列/リストのインデックスとして使用すると、リストまたは配列が最速になると理論付けています。これによりギャップのあるデータ構造が作成されますが、ルックアップまたは更新がどれほど高速になるかわかりません。
arrays
また、リストの代わりに使用することで大きなメリットがあるかどうかもまだわかりません。これに dict を使用するのは非常に自然で、キーと値のペアを使用しますが、最初に dict を作成するのは非常に遅く、すべてのエントリに対応するために大きくなるため、メモリを大量に消費する印象を受けます。
また、SQLite がフラグを使用してこれを解決するのに適している可能性があることも読みましたが、
:memory:
まだあまり掘り下げていません。
とにかく、ここでいくつかのガイダンスを探しています。私が掘り下げているので、どんな考えでも大歓迎です。