4

オーバーヘッドが関係するため、小さな辞書をたくさん持つとメモリが無駄になるのではないかと思っていました。ディクショナリはハッシュ テーブルとして実装されているため、これらの小さなディクショナリをそれぞれに含む何千ものオブジェクトがある場合、検索するリスト/バイナリ検索ツリーだけではなく、多くのスペースを浪費することになります。各小さな辞書には 4 ~ 5 個のキーと値のペアしか含まれていませんか?

私が今見ているコードはそのように実装されており、メモリの問題があるため、少数のアイテムにハッシュテーブルを使用するのはどれほど無駄なのか疑問に思っていました. リスト/バイナリ検索ツリー以外のオプションは何ですか?

4

2 に答える 2

1

もちろん、ベンチマークはパフォーマンスとメモリの問題を確認するための最良の方法ですが、各ディクショナリがそれほど小さい場合は、ListDictionaryクラスまたはHybridDictionaryクラスを検討してください。小さなディクショナリの場合、確実にパフォーマンス上のメリットが見られるはずです。また、サイズのメリットも見られると思います。

于 2013-03-29T00:52:22.490 に答える
1

ハッシュ機能が必要な場合は、辞書の代わりに hastable を使用できますが、そうでない場合は軽量コレクションで十分です。このリンクを確認できます辞書とハッシュテーブルのメモリ使用量

于 2013-03-29T00:54:33.760 に答える