Курсы по программированию

Формула программиста

основатель — Волосатов Евгений Витольдович
Поздравляю с 1 сентября! Система начисления Байтов работает.

Коллекция графов / Hashtable

  • На этом уроке мы поработаем с Hashtable - каким именно
    образом в неё складываются значения и почему она будет
    работать, даже если хеш-функция вернёт одинаковые значения.
    Также мы увидим, что порядок элементов путается,
    а сами значения хранятся в очень хитром виде.
    В конце урока мы сделаем всё то же самое с гибридным классом.
    Самостоятельное задание: сравнить скорость работы этих коллекций.
    1 этап: создать МНОГО коллекций по 8 и по 9 элементов (ОТДЕЛЬНО).
    2 этап: создать ОДНУ коллекцию из ОГРОМНОГО количества элементов.
    Подвести итоги и в отчёте написать вывод.
  • Дата отправки отчёта: 15 апреля 2016 г.
  • Задание выполнено: за 30 мин.
  • Чему научился: Сравнил разницу создания Hashtable, HybridDictionary и ListDictionary.
  • Что было сложным: Ничего
  • Комментарии: HybridDictionary почему-то быстрее всех заполняет себя данными. Думал быстрее будет Hashtable. И есть странные результаты. Миллион ListDictionary с 10 элементами создается быстрее чем миллион ListDictionary с 8 элементами.
  • Оценка видео-уроку:
Отчёт от 1967 за Коллекция графов / Hashtable




Оцени работу

 
Сохранить страницу:

1. --
Евгений Волосатов
Евгений Волосатов
ответить
→  Дмитрий  # Коллекция графов / Hashtable / 2016-04-14 23:32

Попробуй Миллион на коллекцию из 8 элементов.
Добавь в отчёт, пожалуйста.


1. --
Евгений Волосатов
Евгений Волосатов
ответить
→  Дмитрий  # Коллекция графов / Hashtable / 2016-04-15 09:07

Думаю это связано с тем, что память уже забита и тратится время на сборщик мусора.
Поменяй местами запуск на 10 и на 8 элементов и напиши мне.
И ещё, заметил ЗНАЧИТЕЛЬНУЮ разницу хибрида?
Потому что с 9 элемента он перестраивается.


1967. --
Дмитрий
Дмитрий
ответить
→  Евгений Волосатов  # Коллекция графов / Hashtable / 2016-04-15 09:38

Все верно. Когда поменял местами. Все стало логичнее.
Миллион коллекций ListDictionary с 8 элементами создался за 3897 миллисекунд
Миллион коллекций Hashtable с 8 элементами создался за 8306 миллисекунд
Миллион коллекций HybridDictionary с 8 элементами создался за 7994 миллисекунд
Миллион коллекций ListDictionary с 10 элементами создался за 7197 миллисекунд
Миллион коллекций Hashtable с 10 элементами создался за 10602 миллисекунд
Миллион коллекций HybridDictionary с 10 элементами создался за 14699 миллисекунд.

А для остальных случаев гибрид рулит. :) Но опять же не ясно почему. Он же до 9 элемента делает ListDictionary, а потом перестраивается на Hashtable (на это же нужно время, но он все равно быстрее чем остальные).



Начинаем практику по языку C#





Если вы пришли без приглашения -
введите тысяча двадцать четыре (цифрами).
Чтобы стать хорошим программистом — нужно писать программы. На нашем сайте очень много практических упражнений.

После заполнения формы ты будешь подписан на рассылку «C# Вебинары и Видеоуроки», у тебя появится доступ к видеоурокам и консольным задачам.

Несколько раз в неделю тебе будут приходить письма — приглашения на вебинары, информация об акциях и скидках, полезная информация по C#.

Ты в любой момент сможешь отписаться от рассылки.


Научился: HybridDictionary - WIN!!! Я думал что ListDictionary будет быстрей, но оказалось что HybridDictionary лучше :)
Трудности: С размещением в Hashtable и HybridDictionary элементов в будущем разберу, сейчас главное суть понять.



Научился: Ознакомился и поработал с новыми коллекциями Hashtable, HybrideDictionary, разобрался с тем как они располагаются в памяти. Наконец-то понял, что такое вообще hash и откуда он берется)))
Трудности: При подборе количества итераций цикла (100000) в ListDictionary комп висит - поэтому ограничился 10000!
Нет