私はデータベースを非常に定期的に照会するアプリケーションを持っています。最大で数百万の文字列が返され、大多数のbiengが繰り返されます。これらのレコードをすべてメモリに保存する必要があり、フットプリントを最小限に抑えようとしています。
私の現在の設計は、すべての文字列に対してGetHashCode()を呼び出し、文字列自体の代わりにハッシュを格納することです。
Dictionary<hashcode,string>()
次に、それを構造に追加しようとします。Dictionary<hashcode,count>()
また、文字列を使用するエントリが増えるにつれて、インクリメント/デクリメントされる 2番目の辞書も保持します。
エントリdisposeメソッドで、カウンタをデクリメントし、使用量がゼロになったら辞書から文字列を削除します。
だから、いくつかの質問:
これは愚か者の用事ですか?この巨人と一緒に作業するよりも多くの時間と労力を節約できる、使用できるデータ型はありますか?
文字列テーブルをスレッドセーフにしたい(現在はそうではない)。ConcurrentDictinaryを使用するのが最善の策ですか?
前もって感謝します。