Estou gerando um dicionário de força bruta em Python no meu Mac para um torneio CTF. Fiquei me perguntando se há uma maneira de dedicar mais RAM para esse processo. O meu objetivo é tornar isso mais rápido, por isso, se houver uma abordagem diferente, estou aberto! Obrigado!!
mac
memory
performance
python
Harry qwerty
fonte
fonte
Respostas:
Se a conta do usuário não estiver limitada
ulimit
, ela consumirá a quantidade de memória necessária da RAM física livre (mesmo se você a limitar,ulimit
ainda poderá usar a memória virtual).O problema ocorrerá se o seu programa tentar preencher a RAM com caracteres gerados. Em algum momento, você preencherá toda a RAM disponível e seu processo começará a trocar para a memória virtual (ou basicamente para um arquivo) que diminui a velocidade de todo o PC, já que o sistema operacional também precisa de um pouco de fôlego e a alternância prejudica o desempenho de toda a máquina.
A abordagem correta para essas tarefas é alocar um pequeno buffer na memória (por exemplo, de 4 a 8 Mb) e despejar periodicamente o buffer (no modo de acréscimo) em um arquivo. Essa seria a solução mais rápida no seu caso, sem colocar o sistema operacional em risco.
fonte