Словарь прогнозирования <> размер и скорость - PullRequest
1 голос
/ 26 сентября 2011

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

Как рассчитать (приблизительно) ожидаемый размер словаря сп предметов?Мне нужно знать, сколько оперативной памяти мне нужно в разных сценариях.На какой фактор увеличивается время поиска?O (1) ВСЕГДА?

Я планирую использовать словари для 10M + записей, возможно, больше.

Уже серьезный вопрос для Размер словаря

1 Ответ

2 голосов
/ 26 сентября 2011

Чтобы ответить на свой вопрос, я создал небольшую тестовую программу.

Вот результаты:

  • 100 000 случайных поисков в таблице, состоящей из 10 000 000 случайных записей, занимает 0,02 секунды, таблица использует 200 МБ ОЗУ.

  • Объем памяти, используемой словарем, для индекса Int32 примерно в 20-22 раза превышает 100 единиц. Соотношение уменьшается по мере увеличения словаря.

  • Предварительное выделение памяти заметно сокращается во время вставки.

Results from Dictionary memory and speed test

Детали теста и результаты на http://blog.tedd.no/2011/09/26/net-dictionary-speed-and-memory/

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