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