Come allocare più memoria in Python? Mac OS


0

Sto creando un dizionario di forza bruta in Python sul mio Mac per un torneo CTF. Mi stavo chiedendo se c'è un modo per dedicare più RAM a quel processo. Quello che sto cercando è di farlo andare più veloce quindi se c'è un approccio diverso a questo sono aperto! Grazie!!


potrebbe essere più adatto per Ingegneria software o sito simile
Albin

Hai esaurito la memoria durante l'esecuzione del processo?
Aulis Ronkainen

Aulis ronkainen no, non l'ho fatto. Voglio solo farlo andare più veloce. Ho un tempo limitato. Sto creando un dizionario che genera ogni lettera e numero. Ad esempio aa ab ... aA aB ... A1 A2 ...
Harry qwerty

4
@Harryqwerty RAM viene allocata dinamicamente in base all'utilizzo del processo. A questo processo non viene allocata molta memoria, è probabile che semplicemente non stia utilizzando molta memoria, e aggiungerne altri non ne accelera (ci sarebbe solo un sacco di memoria inutilizzata in giro).
Gordon Davisson

@GordonDavisson, grazie! Questo è esattamente quello che stavo per.
Aulis Ronkainen

Risposte:


0

Se l'account dell'utente non è limitato con ulimit quindi ci vorrà tutta la memoria necessaria dalla RAM fisica libera (anche se la si limita a ulimit è ancora in grado di utilizzare la memoria virtuale).

Il problema si verifica se il tuo programma tenta di riempire la RAM con caratteri generati. A un certo punto riempirai tutta la RAM disponibile e il tuo processo inizierà a passare alla memoria virtuale (o fondamentalmente a un file) che rallenta l'intero PC poiché anche il SO ha bisogno di un po 'di respiro e lo scambio avanti e indietro ucciderà le prestazioni dell'intera macchina.

L'approccio corretto per tali compiti è di allocare un piccolo buffer in memoria (ad esempio 4-8 Mb) e periodicamente scaricare il buffer (in modalità append) su un file. Questa sarebbe la soluzione più veloce nel tuo caso senza mettere il sistema operativo al ginocchio.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.