Библиотека шарписта | C#, F#, .NET, ASP.NET
22.8K subscribers
2.26K photos
36 videos
85 files
4.43K links
Все самое полезное для C#-разработчика в одном канале.

По рекламе: @proglib_adv

Учиться у нас: https://proglib.io/w/b60af5a4

Для обратной связи: @proglibrary_feeedback_bot

РКН: https://gosuslugi.ru/snet/67a5c81cdc130259d5b7fead
Download Telegram
💡Сергей Тепляков напоминает, что KeyValuePair<TK,TV> не стоит использовать в качестве ключа хеш-таблиц, так как он не переопределяет методы Equals/HashCode.

Это может привести к снижению производительности в 100 раз, так как хеш-код KVP будет одинаковым, если ключ и значение совпадают. Почему?

Потому что по умолчанию для blittable структур хеш-код является просто операцией XOR (^) всех полей (смотрите третий скрин).

Большое время обработки вызвано коллизиями и последовательным поиском, а также огромными выделениями памяти, связанным с упаковкой каждого экземпляра для вызова метода Equals.

👉 Подробнее

#dotnet #csharp #performance #tip #benchmarks
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
👍23🤔6😁1