Я создаю библиотеку, которую тестирую на производительность. В нем я один раз генерирую Dictionary
. Элементы в настоящее время вставлены в случайном порядке. Словарь остается неизменным в течение всего времени жизни приложения.
Затем он часто используется для поиска элементов. Поиск — одно из самых больших узких мест в библиотеке.
Да, я занимаюсь микрооптимизацией, но учиться. Мне интересно, есть ли лучший способ повысить производительность поиска?
Обновление
Я использовал dotTrace для измерения производительности. Отчет + dotTrace находится на моем домашнем компьютере, поэтому у меня нет отчета здесь (мог бы загрузить его куда-нибудь иначе).
Я использовал тесты, найденные здесь: https://github.com/danielpalme/IocPerformance
Определение словаря находится здесь: https://github.com/jgauffin/Griffin.Container/blob/master/Source/Griffin.Container/ContainerBase.cs
(I создал контейнер в прошлую пятницу, не ожидайте слишком многого)
Update2
Dictionary.TryGetValue
занимает всего 101 мс Resolve
(всего 251 мс), что составляет 40,2%, если я правильно истолковал числа.