Рассчитать потенциальное использование памяти набора в Python - PullRequest
0 голосов
/ 18 февраля 2020

На основе пользовательского ввода я создам очень большой (потенциально миллионы элементов) набор с целочисленными записями около 1000 бит (технически объекты gmpy2 mpz ). Я хочу быть в состоянии спросить пользователя, хотят ли они продолжать программу, основываясь на том, сколько памяти у них есть.

Мне нужен способ определить, сколько памяти займет этот набор, учитывая количество элементов и размер каждого элемента, до фактического создания набора. У меня есть две основные проблемы с накладными расходами памяти для наборов: использование памяти хешами и, согласно этому SO-ответу избыточные сегменты в наборе. Если хорошая точность не может быть достигнута, тогда оценки наихудшего случая достаточно.

Я знаю, что наборы занимают больше памяти, чем списки, но мне необходимо использовать набор, потому что я должен иметь возможность эффективно проверять членство в наборе и проверка членства в наборе асимптотически быстрее, чем проверка членства в списке.

...