В программе C# у меня есть два элемента Queues элементов longs, 26M и четыре элемента HashSets элементов longs, 50M. Таким образом, мои контейнеры хранят 75M longs, который дает 600MB данных. Использование памяти программы 3GB.
Почему эти контейнеры нуждаются в такой большой памяти? Что такое сложность памяти HashSet? Даже если все структуры удваивают свою способность, он даст 1.2GB, а не 3GB.
EDIT:
Да, я не имел в виду сложность. Сколько памяти HashSet нужно сохранить long? Простая двоичная куча не нуждается в дополнительной памяти. Есть ли альтернатива для HashSet, если мне нужно снизить использование памяти или мне нужно реализовать ее самостоятельно?