Есть ли реализация IDictionary <K, V> с лучшей производительностью по сравнению с BCL? - PullRequest
0 голосов
/ 10 декабря 2008

Я ищу реализацию IDictionary с лучшей производительностью по сравнению со стандартом BCL.

Я ищу что-то с постоянным временем поиска, которое действительно хорошо работает с большим количеством элементов (> 10 КБ) и более дружественно к GC.

PS: Нет, я не могу написать один самостоятельно:)

Ответы [ 3 ]

7 голосов
/ 10 декабря 2008

Словарь BCL уже работает с амортизированным постоянным временем и может легко обрабатывать 10 тыс. Элементов.

Вы говорите, что он должен быть "более дружественным к GC" - что вас беспокоит в текущей версии?

Вы часто добавляете элементы в словарь? Если это так, создайте его с большой начальной емкостью, чтобы избежать оттока.

2 голосов
/ 10 декабря 2008

Я думаю, вам будет сложно найти управляемый словарь, который быстрее, чем BCL. Я попытался написать один, и быстро обнаружил, что это примерно так же быстро, как и при балансировании производительности чтения / записи.

2 голосов
/ 10 декабря 2008

Мне не удалось сравнить реализацию, но альтернативный - и более всесторонний - выбор общих классов коллекций доступен в Университете Копенгагена здесь:

http://www.itu.dk/research/c5/

Они предлагают ряд общих реализаций Словаря с различными решениями для поддержки (Деревья, HashTables и т. Д.). Возможно, один из них соответствует вашим потребностям. Производительность была главным фактором в развитии этой библиотеки классов.

Конечно, я бы порекомендовал вам сначала попробовать базовый класс Dictionary BCL, так как это сэкономит ваше время и может вполне соответствовать вашим требованиям к производительности.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...