2012/8/3 Михаил Монашёв <[email protected]> > Здравствуйте. > > Есть несколько миллионов чисел в диапазоне от 0 до 2 в 32 степени > минус 1 . Нужно быстро проверять, есть такое число или нету. Если > засунуть их в битовый массив, то они все влезут в 16 мегабайт. Вопрос > в том, каким модулем пользоваться для записи/чтения в этот битовый > массив, чтобы было быстро и при этом не раздувалось в памяти более > 20-30 мегабайт? Или может проще самому через substr + побитовые ИЛИ/И > реализовать чзапись/чтение? >
Э, гм, если от 0 до 2**32, то нужно вообще-то 512 мегабайт памяти, если по биту на одно число. Есть модуль Bit::Vector как обвязка над vec(). Если сделать Bit::Vector->new(2**32 - 1) то как раз где-то 512 Мб отъест. > > -- > С уважением, > Михаил mailto:[email protected] > > -- > Moscow.pm mailing list > [email protected] | http://moscow.pm.org >
-- Moscow.pm mailing list [email protected] | http://moscow.pm.org
