Effacer la mémoire en Python
-
Effacer la mémoire en Python avec la méthode
gc.collect()
-
Effacer la mémoire en Python à l’aide de l’instruction
del
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()