На этом уроке мы поработаем с Hashtable - каким именно образом в неё складываются значения и почему она будет работать, даже если хеш-функция вернёт одинаковые значения. Также мы увидим, что порядок элементов путается, а сами значения хранятся в очень хитром виде. В конце урока мы сделаем всё то же самое с гибридным классом. Самостоятельное задание: сравнить скорость работы этих коллекций. 1 этап: создать МНОГО коллекций по 8 и по 9 элементов (ОТДЕЛЬНО). 2 этап: создать ОДНУ коллекцию из ОГРОМНОГО количества элементов. Подвести итоги и в отчёте написать вывод.
Дата отправки отчёта:
20 сентября 2016 г.
Задание выполнено: за
1 час. 13 мин.
Чему научился:
Научился работать со словарями ListDictionary, HashTable и HybrideDictionary
Что было сложным:
Самым сложным сделать тест. Я сначала не понял задание - я создавал массив коллекций и в каждый элемент добавлял по 10 элементов - понятное дело на 100 млн записях у вылетело с exception Out of memory. Потом я начал создавать словарь и добавлять по 10 элементов и так 100 млн раз - в результате получилось.
Комментарии:
У меня очень долго работал тест добавления 100 млн записей - пришлось сначала сократить до 10 млн, потом до 100 000 записей и то со скрина видно, что очень долго добавляются записи и примерно одинаковое время работает. А в первом случае намного быстрее - 100 млн раз по 10 записей.
Научился: HybridDictionary - WIN!!!
Я думал что ListDictionary будет быстрей, но оказалось что HybridDictionary лучше :) Трудности: С размещением в Hashtable и HybridDictionary элементов в будущем разберу, сейчас главное суть понять.
Научился: Ознакомился и поработал с новыми коллекциями Hashtable, HybrideDictionary, разобрался с тем как они располагаются в памяти. Наконец-то понял, что такое вообще hash и откуда он берется))) Трудности: При подборе количества итераций цикла (100000) в ListDictionary комп висит - поэтому ограничился 10000! Нет