Borrar memoria en Python

Muhammad Waiz Khan 30 enero 2023
  1. Borrar memoria en Python usando el método gc.collect()
  2. Borrar memoria en Python usando la declaración del
Borrar memoria en Python

Este tutorial analizará los métodos para liberar o borrar la memoria en Python durante la ejecución del programa. Cuando un programa tiene que lidiar con archivos grandes, procesa una gran cantidad de datos o mantiene los datos en la memoria. En este tipo de escenarios, el programa a menudo puede quedarse sin memoria.

Para evitar que el programa se quede sin memoria, tenemos que liberar o borrar la memoria borrando la variable o los datos, que ya no son necesarios en el programa. Podemos borrar la memoria en Python usando los siguientes métodos.

Borrar memoria en Python usando el método gc.collect()

El método gc.collect(generation=2) se utiliza para borrar o liberar la memoria no referenciada en Python. La memoria no referenciada es la memoria que es inaccesible y no se puede utilizar. El argumento opcional generation es un número entero cuyo valor va de 0 a 2. Especifica la generación de los objetos a recolectar usando el método gc.collect().

En Python, los objetos de corta duración se almacenan en la generación 0 y los objetos con una vida útil más larga se almacenan en la generación 1 o 2. La lista mantenida por el recolector de basura se borra cada vez que se llama al gc.collect() con el valor predeterminado de generation igual a 2.

El método gc.collect() puede ayudar a disminuir el uso de memoria y borrar la memoria no referenciada durante la ejecución del programa. Puede evitar que el programa se quede sin memoria y se bloquee al borrar los datos inaccesibles de la memoria.

Borrar memoria en Python usando la declaración del

Junto con el método gc.collect(), la declaración del puede ser bastante útil para borrar la memoria durante la ejecución del programa de Python. La declaración del se utiliza para eliminar la variable en Python. Primero podemos borrar la variable como una lista grande, o matriz, etc., de la cual estamos seguros que ya no son requeridos por el programa.

El siguiente código de ejemplo demuestra cómo utilizar la instrucción del para eliminar la variable.

import numpy as np

a = np.array([1, 2, 3])
del a

Supongamos que intentamos usar o acceder a la variable después de eliminarla. En ese caso, el programa devolverá la excepción NameError ya que la variable a la que intentamos acceder ya no existe en el espacio de nombres de la variable.

Código de ejemplo:

import numpy as np

a = np.array([1, 2, 3])
del a
print(a)

Producción :

NameError: name 'a' is not defined

La declaración del elimina la variable del espacio de nombres, pero no necesariamente la borra de la memoria. Por lo tanto, después de eliminar la variable usando la instrucción del, podemos usar el método gc.collect() para borrar la variable de la memoria.

El siguiente código de ejemplo demuestra cómo usar la declaración del con el método gc.collect() para borrar la memoria en Python.

import numpy as np
import gc

a = np.array([1, 2, 3])
del a
gc.collect()