Я создаю словарь грубой силы в Python на своем Mac для турнира CTF. Мне было интересно, есть ли способ выделить больше оперативной памяти для этого процесса. Я стремлюсь сделать это быстрее, так что, если есть другой подход, я открыт! Спасибо!!

1 ответ1

0

Если учетная запись пользователя не ограничена с помощью ulimit то из свободной физической ОЗУ потребуется столько памяти, сколько необходимо (даже если вы ограничите ее с помощью ulimit нее все еще будет возможность использовать виртуальную память).

Проблема возникнет, если ваша программа попытается заполнить ОЗУ сгенерированными символами. В какой-то момент вы заполните всю доступную оперативную память, и ваш процесс начнет переключаться на виртуальную память (или, в основном, на файл), которая замедляет работу всего ПК, поскольку ОС тоже требует некоторого дыхания, а переключение туда-сюда снизит производительность всей машины.

Правильный подход для таких задач состоит в том, чтобы выделить небольшой буфер в памяти (скажем, 4-8 Мб) и периодически выгружать буфер (в режиме добавления) в файл. Это было бы самым быстрым решением в вашем случае, не ставя операционную систему на колени.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .