Pull to refresh

Comments 4

Недавно в одном из чатов по Rust поднимался вопрос производительности HashMap/HashSet в Rust по сравнению с Java. Краткий результат дискуссии - чтобы работало быстро нужно создавать HashMap/HashSet со своим хэшером, который считает хэш на основе простой операции вроде xor, например так. Используемый по умолчанию хэшер ориентирован на безопасность, поэтому работает медленнее.

Или можно не приседать с написанием своего хешера вручную и взять уже готовый, например, ahash, который даже обёртки предоставляет, позволяющий просто поменять HashMap на ahash::AHashMap.

У разработчиков языка, к слову, это в книге упоминается. Алгоритм, который использует HashMap соответственно SipHash. Ну, и лучше, наверное, вместо своих реализаций крейт подключить по типу этого. Как говорится, всё уже придумано за нас)

Sign up to leave a comment.