Como alocar mais memória para Python? Mac OS


0

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!!


pode ser mais adequado para a engenharia de software ou site semelhante
Albin

Você ficou sem memória ao executar o processo?
Aulis Ronkainen

Aulis ronkainen não, eu não fiz. Só quero fazer isso ir mais rápido. Eu tenho um tempo limitado. Estou criando um dicionário que está gerando todas as letras e números. Por exemplo, aa ab ... aA aB ... A1 A2 ...
Harry qwerty 17/11

4
A RAM @Harryqwerty é alocada dinamicamente com base no uso do processo. Se o processo não estiver sendo alocado para muita memória, é provável que ele simplesmente não esteja usando muita memória, e adicionar mais não acelera (apenas há muita memória não utilizada por aí).
Gordon Davisson

@GordonDavisson, obrigado! Era exatamente para isso que eu estava indo.
Aulis Ronkainen

Respostas:


0

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, ulimitainda 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.

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.