tgoop.com/csharp_gepard/100
Last Update:
HashSet vs Array #память #скорость #бенч
Иногда бывает ситуация, когда нам нужно убедиться, что элемент существует в коллекции.
В моей ситуации это хитрая проверка прав пользователя, по которым ведётся простое сопоставление. Я создаю сет или массив, и начинаю поиск по нему.
В результате, мы имеем вот этот бенчмарк. Какие же выводы мы можем сделать из него:
1. Чем меньше коллекция, тем более эффективен подход с простым перебором массива. И тем дороже HashSet.
2. Задачи HashSet'a становятся эффективными по скорости от 100 элементов при непосредственном создании перед поиском.
3. HashSet ест память, исходя из имплементации.
4. Простой массив более эффективен по памяти.
Код в комментариях.
P.S.: Коллега сделал замер чисто поиска, без аллокации. Array там почти как HashSet на 8 элементах.
P.P.S.: Если хочется сравнить с предварительно созданым FrozenSet, то результаты коллега опубликовал тут. Array всё ещё ожидаемо хорош на малых коллекциях.
BY C# Heppard

Share with your friend now:
tgoop.com/csharp_gepard/100