На этом уроке мы поработаем с Hashtable - каким именно образом в неё складываются значения и почему она будет работать, даже если хеш-функция вернёт одинаковые значения. Также мы увидим, что порядок элементов путается, а сами значения хранятся в очень хитром виде. В конце урока мы сделаем всё то же самое с гибридным классом. Самостоятельное задание: сравнить скорость работы этих коллекций. 1 этап: создать МНОГО коллекций по 8 и по 9 элементов (ОТДЕЛЬНО). 2 этап: создать ОДНУ коллекцию из ОГРОМНОГО количества элементов. Подвести итоги и в отчёте написать вывод.
Дата отправки отчёта:
17 декабря 2016 г.
Задание выполнено: за
1 час. 15 мин.
Чему научился:
Познакомился и немного поработал с ListDictionary, Hashtable, HybridDictionary
Что было сложным:
Понять, что такое хэш
Комментарии:
Результаты измерений: 1. Создание коллекций трех вышеперечисленных типов, добавление в каждую по 8 элементов, повторение 10000000 раз ListDictionary 2663мс Hashtable 5159мс HybridDictionary 2879мс Ожидаемо в таких условиях ListDictionary быстрее, поскольку элементов немного, HybridDictionary совсем немного отстает.
2. Создание коллекций каждого из трех, добавление в каждую по 100000 элементов, ListDictionary 27010мс Hashtable 11мс HybridDictionary 5мс Вывод - ListDictionary совершенно не подходит для работы с большим количеством элементов, типы с хешированием вне конкуренции. Особенно радует HybridDictionary своей универсальностью. Отличный урок!
Научился: HybridDictionary - WIN!!!
Я думал что ListDictionary будет быстрей, но оказалось что HybridDictionary лучше :) Трудности: С размещением в Hashtable и HybridDictionary элементов в будущем разберу, сейчас главное суть понять.
Научился: Ознакомился и поработал с новыми коллекциями Hashtable, HybrideDictionary, разобрался с тем как они располагаются в памяти. Наконец-то понял, что такое вообще hash и откуда он берется))) Трудности: При подборе количества итераций цикла (100000) в ListDictionary комп висит - поэтому ограничился 10000! Нет