パフォーマンステストを行っているライブラリを作成しています。その中で私は一度生成しDictionary<Type, X>
ます。アイテムは現在ランダムな順序で挿入されています。辞書は、アプリケーションの存続期間中は変更されません。
その後、アイテムを検索するために頻繁に使用されます。ルックアップは、ライブラリの大きなボトルネックの1つです。
はい、私はマイクロ最適化していますが、学ぶことです。ルックアップパフォーマンスを取得するためのより良い方法があるかどうか疑問に思っていますか?
アップデート
dotTraceを使用してパフォーマンスを測定しました。レポート+dotTraceは自宅のコンピューターにあるので、ここにはレポートがありません(別の場所にアップロードされている可能性があります)。
ここにあるテストを使用しました: https ://github.com/danielpalme/IocPerformance
辞書の定義はここにあります:https ://github.com/jgauffin/Griffin.Container/blob/master/Source/Griffin.Container/ContainerBase.cs
(私は先週の金曜日にコンテナを作成しました、あまり期待しないでください)
Update2
Dictionary.TryGetValue
Resolve
合計で101ms(合計251ms)かかります。これは、数値を正しく解釈した場合、40,2%になります。