Наиболее эффективная реализация Hashset с точки зрения памяти? - PullRequest
0 голосов
/ 28 мая 2020

Я ищу наиболее эффективную с точки зрения памяти реализацию Hashset / Hashmap / unordered-set на любом языке, который все еще поддерживает поиск, близкий к O (1). Мой любимый язык - C#, так что я пока искал его. Мой конкретный вариант использования - хранение большого количества ulong (представляющих 64-битные хэши) для быстрого поиска. В C# кажется, что фактическое использование памяти примерно в 2,5 раза больше фактических данных. Например, если я храню в хэш-наборе 100 миллионов длинных данных, необработанные данные составляют 800 миллионов байтов, но фактическое использование памяти составляет около 2 ГБ (это с добавлением. NET framework 4.8, позволяющим использовать хэш-набор идеального размера; в противном случае занимает более 4 ГБ). Мой вопрос: есть ли реализация на каком-либо другом языке с накладными данными <2,5x? </p>

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...