Speicher löschen in Python

Muhammad Waiz Khan 30 Januar 2023
  1. Speicher löschen in Python mit der Methode gc.collect()
  2. Speicher löschen in Python mit der del-Anweisung
Speicher löschen in Python

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