最初に、初期化時に辞書のサイズを設定できるという噂を聞いたことがありますが、これがどのように行われるかを説明しているドキュメントや PEP を見たことがありません。
これを念頭に置いて、以下に説明するように、アイテムの数量を分析しました。辞書のサイズを変更するたびに時間がかかる場合がありますが、少なくともパフォーマンスをテストできるようになるまでは、気にせずに先に進むことをお勧めします。
サイズ変更を決定する際に関係する 2 つのルールは、要素の数とサイズ変更の要因です。辞書は、2/3 マークの上に配置する要素の追加で 2/3 いっぱいになると、サイズが変更されます。50,000 要素未満では 4 倍に増加し、その量を超えると 2 倍になります。10,000,000 要素 (2^23 から 2^24 の間) の見積もりを使用すると、辞書は 15 倍 (50k 未満では 7 倍、上記の8回)。別のサイズ変更は、11,100,000 を少し過ぎたところで発生します。
ハッシュテーブル内の現在の要素のサイズ変更と置換には時間がかかりますが、近くのコードで実行していることに気付くでしょうか。辞書サイズ 2^3 から 2^24 までの各境界に沿った 5 つの場所での挿入を比較するタイミング スイートをまとめました。「境界」の追加は、「非境界」の追加より平均 0.4 ナノ秒長くなります。これは 0.17% 長いです...おそらく許容範囲です。すべての操作の最小値は 0.2085 マイクロ秒で、最大値は 0.2412 マイクロ秒でした。
これが洞察に満ちていることを願っています。コードのパフォーマンスを確認する場合は、編集してフォローアップしてください! ディクショナリの内部に関する私の主なリソースは、PyCon 2010 での Brandon Rhodes による素晴らしい講演でした: The Mighty Dictionary