Effacer la mémoire en Python

Muhammad Waiz Khan 30 janvier 2023
  1. Effacer la mémoire en Python avec la méthode gc.collect()
  2. Effacer la mémoire en Python à l’aide de l’instruction del
Effacer la mémoire en Python

Ce tutoriel examinera les méthodes pour libérer ou effacer la mémoire en Python pendant l’exécution du programme. Lorsqu’un programme doit gérer des fichiers volumineux, traiter une grande quantité de données ou conserver les données en mémoire. Dans ces types de scénarios, le programme peut souvent manquer de mémoire.

Pour éviter que le programme ne manque de mémoire, nous devons libérer ou effacer la mémoire en effaçant la variable ou les données, qui ne sont plus nécessaires dans le programme. Nous pouvons effacer la mémoire en Python en utilisant les méthodes suivantes.

Effacer la mémoire en Python avec la méthode gc.collect()

La méthode gc.collect(generation=2) est utilisée pour effacer ou libérer la mémoire non référencée en Python. La mémoire non référencée est la mémoire qui est inaccessible et ne peut pas être utilisée. L’argument optionnel generation est un entier dont la valeur varie de 0 à 2. Il spécifie la génération des objets à collecter à l’aide de la méthode gc.collect().

En Python, les objets éphémères sont stockés dans la génération 0 et les objets avec une durée de vie plus longue sont stockés dans la génération 1 ou 2. La liste maintenue par le garbage collector est effacée chaque fois que le gc.collect() avec la valeur par défaut generation égale à 2 est appelé.

La méthode gc.collect() peut aider à diminuer l’utilisation de la mémoire et à effacer la mémoire non référencée pendant l’exécution du programme. Il peut empêcher le programme de manquer de mémoire et de planter en effaçant les données inaccessibles de la mémoire.

Effacer la mémoire en Python à l’aide de l’instruction del

Avec la méthode gc.collect(), l’instruction del peut être très utile pour effacer la mémoire pendant l’exécution du programme de Python. L’instruction del est utilisée pour supprimer la variable en Python. Nous pouvons d’abord supprimer la variable comme une grande liste, ou un tableau, etc., dont nous sommes sûrs que le programme n’est plus requis.

L’exemple de code ci-dessous montre comment utiliser l’instruction del pour supprimer la variable.

import numpy as np

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

Supposons que nous essayions d’utiliser ou d’accéder à la variable après l’avoir supprimée. Dans ce cas, le programme renverra l’exception NameError car la variable à laquelle nous essayons d’accéder n’existe plus dans l’espace de nom de la variable.

Exemple de code:

import numpy as np

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

Production:

NameError: name 'a' is not defined

L’instruction del supprime la variable de l’espace de noms, mais elle ne l’efface pas nécessairement de la mémoire. Par conséquent, après avoir supprimé la variable à l’aide de l’instruction del, nous pouvons utiliser la méthode gc.collect() pour effacer la variable de la mémoire.

L’exemple de code ci-dessous montre comment utiliser l’instruction del avec la méthode gc.collect() pour effacer la mémoire en Python.

import numpy as np
import gc

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