Cancella memoria in Python
-
Cancella la memoria in Python usando il metodo
gc.collect()
-
Cancella la memoria in Python usando l’istruzione
del
Questo tutorial esaminerà i metodi per liberare o cancellare la memoria in Python durante l’esecuzione del programma. Quando un programma deve gestire file di grandi dimensioni, elaborare una grande quantità di dati o conservare i dati in memoria. In questi tipi di scenari, il programma può spesso esaurire la memoria.
Per evitare che la memoria del programma si esaurisca, dobbiamo liberare o cancellare la memoria cancellando la variabile oi dati, che non sono più necessari nel programma. Possiamo cancellare la memoria in Python usando i seguenti metodi.
Cancella la memoria in Python usando il metodo gc.collect()
Il metodo gc.collect(generation=2)
è usato per cancellare o rilasciare la memoria non referenziata in Python. La memoria non referenziata è la memoria che è inaccessibile e non può essere utilizzata. L’argomento facoltativo generation
è un numero intero il cui valore varia da 0
a 2
. Specifica la generazione degli oggetti da raccogliere utilizzando il metodo gc.collect()
.
In Python, gli oggetti di breve durata sono memorizzati nella generazione 0
e gli oggetti con una vita più lunga sono memorizzati nella generazione 1
o 2
. La lista mantenuta dal garbage collector viene cancellata ogni volta che viene chiamato il gc.collect()
con valore di generation
predefinito uguale a 2
.
Il metodo gc.collect()
può aiutare a ridurre l’utilizzo della memoria e cancellare la memoria non referenziata durante l’esecuzione del programma. Può impedire al programma di esaurire la memoria e bloccarsi cancellando i dati inaccessibili della memoria.
Cancella la memoria in Python usando l’istruzione del
Insieme al metodo gc.collect()
, l’istruzione del
può essere molto utile per cancellare la memoria durante l’esecuzione del programma Python. L’istruzione del
viene utilizzata per eliminare la variabile in Python. Possiamo prima cancellare la variabile come una grande lista, o array, ecc., Di cui siamo sicuri che non sono più richiesti dal programma.
Il codice di esempio seguente mostra come utilizzare l’istruzione del
per eliminare la variabile.
import numpy as np
a = np.array([1, 2, 3])
del a
Supponiamo di provare a utilizzare o accedere alla variabile dopo averla eliminata. In tal caso, il programma restituirà l’eccezione NameError
poiché la variabile a cui stiamo tentando di accedere non esiste più nello spazio dei nomi della variabile.
Codice di esempio:
import numpy as np
a = np.array([1, 2, 3])
del a
print(a)
Produzione:
NameError: name 'a' is not defined
L’istruzione del
rimuove la variabile dallo spazio dei nomi, ma non la cancella necessariamente dalla memoria. Quindi, dopo aver cancellato la variabile usando l’istruzione del
, possiamo usare il metodo gc.collect()
per cancellare la variabile dalla memoria.
Il codice di esempio sotto mostra come usare l’istruzione del
con il metodo gc.collect()
per cancellare la memoria in Python.
import numpy as np
import gc
a = np.array([1, 2, 3])
del a
gc.collect()