3

現在、私のプログラムでは 5 つの辞書を使用しており、そのうちの 2 つには 1,300 万のキーと値のペアがあります。各 Dict はペアであり、キーは長さ 1 ~ 6 の char 値であり、値はキーと値のペアの別の dict です。現在、キーの長さは 1 ~ 12 で、値はタプルです。

このPythonのソリューションは正常に機能していますが、効率的ではありません。実行ごとにルックアップが約80万回カウントされます。リアルタイムフィルタリングアプリケーションであるcで書かれたサーバー上の別のスクリプトでGHashTableを使用し、彼のパフォーマンスは際立っています。

私の質問は、ハッシュ関数のように GHashTable を使用するオブジェクトまたは実装が私の要件の python であるかどうかです。Python のディクショナリはハッシュを使用しますが、重いレコードではなぜ遅いのですか。Python 辞書で使用されるハッシュは、c の GHashTable と比較して効率的ではありません。利用可能なPythonでのより良いハッシュ実装はありますか?

python dict は数百万のレコードで正常に動作しますが、負荷が高い場合は O(1) に応答しませんでした。

Python プロセスは RAM に収まりますか? はい、18 GB の RAM があり、postgres などのために 8 GB しか予約されていません。10GB を処理に使用できます。

4

1 に答える 1