Ich verwende Jupyter Lab und nach dem Definieren einer Variablen geben del und gc.collect () den Speicher nicht frei.
Schreiben Sie den folgenden Code in eine Zelle und führen Sie ihn aus.
import numpy as np
import pandas as pd
import psutil
print(psutil.Process().memory_info().rss / 1024**2)
df = pd.DataFrame(np.arange(50000000).reshape(-1,5))
df.head()
Beachten Sie, dass es am Ende df.head () ist.
In der nächsten Zelle
print(psutil.Process().memory_info().rss / 1024**2)
del df
print(psutil.Process().memory_info().rss / 1024**2)
Der Speicherstatus wird nicht sofort angezeigt. Überprüfen Sie ihn daher für alle Fälle in der nächsten Zelle.
print(psutil.Process().memory_info().rss / 1024**2)
Ich dachte, es sei ein Problem mit pandas.DataFrame, aber das ist es nicht. Wenn die Ausgabe von der Jupyter Lab-Funktion am Ende der "Zelle" angezeigt wird, wird sie anscheinend nicht freigegeben, selbst wenn Sie danach in einer anderen Zelle löschen.
Nicht df.head () am Ende der Zelle. Drucken Sie, wenn Sie es anzeigen möchten.
――Es ist ein Teil / Verhalten, bei dem Sie sich unwohl fühlen, aber es ist etwas, bei dem Sie vorsichtig sind, wenn Sie richtig mit Jupyter anfangen (ich weiß nicht).
Recommended Posts