Suchen und Löschen von speicherhungrigen Variablen auf Jupyter (IPython)

Ich möchte Variablen überprüfen / löschen, die Speicher verbrauchen

Bei der Datenanalyse auf Jupyter (IPython) werden immer mehr Daten im Speicher gesammelt, sodass Sie die Variablen überprüfen möchten, die den Speicher belegen. Wenn Sie in einem solchen Fall den folgenden Befehl ausführen, werden die Variablen und die Speicherkapazität der Variablen in einer Liste angezeigt.

Python2


import sys

print "{}{: >25}{}{: >10}{}".format('|','Variable Name','|','Memory','|')
print " ------------------------------------ "
for var_name in dir():
    if not var_name.startswith("_"):
        print "{}{: >25}{}{: >10}{}".format('|',var_name,'|',sys.getsizeof(eval(var_name)),'|')

Python3


import sys

print("{}{: >25}{}{: >10}{}".format('|','Variable Name','|','Memory','|'))
print(" ------------------------------------ ")
for var_name in dir():
    if not var_name.startswith("_"):
        print("{}{: >25}{}{: >10}{}".format('|',var_name,'|',sys.getsizeof(eval(var_name)),'|'))

Das Ausgabeergebnis sieht wie folgt aus.


スクリーンショット 2017-01-03 17.34.11.png * * *

Mit diesem Befehl werden jedoch die Ergebnisse aller in Jupyter definierten Variablen ausgegeben. Wenn Sie beispielsweise nur die Variablen extrahieren möchten, deren Speicherkapazität über einem bestimmten Wert liegt, ordnen Sie dies wie folgt an. Machen.

Python2


import sys

print "{}{: >25}{}{: >10}{}".format('|','Variable Name','|','Memory','|')
print " ------------------------------------ "
for var_name in dir():
    if not var_name.startswith("_") and sys.getsizeof(eval(var_name)) > 10000: #Nur hier arrangieren
        print "{}{: >25}{}{: >10}{}".format('|',var_name,'|',sys.getsizeof(eval(var_name)),'|')

Python3


import sys

print("{}{: >25}{}{: >10}{}".format('|','Variable Name','|','Memory','|'))
print(" ------------------------------------ ")
for var_name in dir():
    if not var_name.startswith("_") and sys.getsizeof(eval(var_name)) > 10000: #Nur hier arrangieren
        print("{}{: >25}{}{: >10}{}".format('|',var_name,'|',sys.getsizeof(eval(var_name)),'|'))

Dann


スクリーンショット 2017-01-03 17.39.00.png

Wie Sie sehen, können nur Variablen mit einer großen Speicherkapazität extrahiert werden.

Wenn Sie es soweit schaffen,

del U_Global, V_Global

Sie können unnötige Variablen angeben und löschen. Sie können den Speicher freigeben und die Analyse bequem auf Jupyter (IPython) fortsetzen.

Bemerkungen

Der Titel lautet "auf Jupyter (IPython)", aber ich denke, dass er auf anderen Schnittstellen wahrscheinlich auf die gleiche Weise angezeigt wird. Da jedoch str.format () verwendet wird, muss Python 2.6 oder höher sein, um eine korrekte Ausgabe zu gewährleisten.

Referenz-URL

Recommended Posts

Suchen und Löschen von speicherhungrigen Variablen auf Jupyter (IPython)
[Windows] [Python3] Installieren Sie Python3 und Jupyter Notebook (ehemals Ipython Notebook) unter Windows
Installieren Sie Anaconda auf Ihrem Mac und laden Sie Ihr Jupyter (IPython) -Notebook in die Anaconda Cloud hoch
Installieren Sie matplotlib und zeigen Sie das Diagramm in Jupyter Notebook an
Starten und verwenden Sie das IPython-Notebook im Netzwerk
Golang mit Jupyter
Jupyter auf AWS
Starten Sie das Jupyter Notebook ganz einfach unter AWS und greifen Sie lokal zu
EC2-Bereitstellung mit Vagrant + Jupyter (IPython Notebook) auf Docker
Daten auf jupyter verschlüsseln und speichern und bei Bedarf entschlüsseln