Более быстрая альтернатива Dictionary?

Я создаю библиотеку, которую тестирую на производительность. В нем я один раз генерирую Dictionary. Элементы в настоящее время вставлены в случайном порядке. Словарь остается неизменным в течение всего времени жизни приложения.

Затем он часто используется для поиска элементов. Поиск — одно из самых больших узких мест в библиотеке.

Да, я занимаюсь микрооптимизацией, но учиться. Мне интересно, есть ли лучший способ повысить производительность поиска?

Обновление

Я использовал dotTrace для измерения производительности. Отчет + dotTrace находится на моем домашнем компьютере, поэтому у меня нет отчета здесь (мог бы загрузить его куда-нибудь иначе).

Я использовал тесты, найденные здесь: https://github.com/danielpalme/IocPerformance

Определение словаря находится здесь: https://github.com/jgauffin/Griffin.Container/blob/master/Source/Griffin.Container/ContainerBase.cs

(I создал контейнер в прошлую пятницу, не ожидайте слишком многого)

Update2

Performance breakdown

Dictionary.TryGetValueзанимает всего 101 мс Resolve(всего 251 мс), что составляет 40,2%, если я правильно истолковал числа.

13
задан jgauffin 14 May 2012 в 10:52
поделиться