Speicher löschen in Python
-
Speicher löschen in Python mit der Methode
gc.collect()
-
Speicher löschen in Python mit der
del
-Anweisung
In diesem Tutorial werden die Methoden zum Freigeben oder Löschen von Speicher in Python während der Programmausführung erläutert. Wenn ein Programm mit großen Dateien umgehen muss, verarbeiten Sie eine große Datenmenge oder behalten Sie die Daten im Speicher. In solchen Szenarien kann dem Programm häufig der Arbeitsspeicher ausgehen.
Um zu verhindern, dass dem Programm der Speicher ausgeht, müssen wir den Speicher freigeben oder löschen, indem wir die Variablen oder Daten löschen, die im Programm nicht mehr benötigt werden. Wir können den Speicher in Python mit den folgenden Methoden löschen.
Speicher löschen in Python mit der Methode gc.collect()
Die Methode gc.collect(generation=2)
wird verwendet, um den nicht referenzierten Speicher in Python zu löschen oder freizugeben. Der nicht referenzierte Speicher ist der Speicher, auf den nicht zugegriffen werden kann und der nicht verwendet werden kann. Das optionale Argument generation
ist eine Ganzzahl, deren Wert von 0
bis 2
reicht. Es gibt die Generierung der zu sammelnden Objekte mit der Methode gc.collect()
an.
In Python werden die kurzlebigen Objekte in der Generation 0
und Objekte mit einer längeren Lebensdauer in der Generation 1
oder 2
gespeichert. Die vom Garbage Collector gepflegte Liste wird immer dann gelöscht, wenn gc.collect()
mit dem Standardwert generation
von 2
aufgerufen wird.
Die Methode gc.collect()
kann dazu beitragen, die Speichernutzung zu verringern und den nicht referenzierten Speicher während der Programmausführung zu löschen. Es kann verhindern, dass dem Programm der Speicher ausgeht und es abstürzt, indem die unzugänglichen Daten des Speichers gelöscht werden.
Speicher löschen in Python mit der del
-Anweisung
Zusammen mit der Methode gc.collect()
kann die Anweisung del
sehr nützlich sein, um den Speicher während der Programmausführung von Python zu löschen. Mit der Anweisung del
wird die Variable in Python gelöscht. Wir können zuerst die Variable wie eine große Liste, ein Array usw. löschen, über die wir sicher sind, dass sie vom Programm nicht mehr benötigt werden.
Der folgende Beispielcode zeigt, wie die Variable del
zum Löschen der Variablen verwendet wird.
import numpy as np
a = np.array([1, 2, 3])
del a
Angenommen, wir versuchen, die Variable nach dem Löschen zu verwenden oder darauf zuzugreifen. In diesem Fall gibt das Programm die Ausnahme NameError
zurück, da die Variable, auf die wir zugreifen möchten, im Variablennamensraum nicht mehr vorhanden ist.
Beispielcode:
import numpy as np
a = np.array([1, 2, 3])
del a
print(a)
Ausgabe:
NameError: name 'a' is not defined
Die Anweisung del
entfernt die Variable aus dem Namespace, löscht sie jedoch nicht unbedingt aus dem Speicher. Daher können wir nach dem Löschen der Variablen mit der Anweisung del
die Methode gc.collect()
verwenden, um die Variable aus dem Speicher zu löschen.
Der folgende Beispielcode zeigt, wie die Anweisung del
mit der Methode gc.collect()
verwendet wird, um den Speicher in Python zu löschen.
import numpy as np
import gc
a = np.array([1, 2, 3])
del a
gc.collect()