Cancella memoria in Python

Muhammad Waiz Khan 30 gennaio 2023
  1. Cancella la memoria in Python usando il metodo gc.collect()
  2. Cancella la memoria in Python usando l’istruzione del
Cancella memoria in Python

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()