Suchen und Löschen von speicherhungrigen Variablen in Jupyter (IPython) -Qiita Die zweite in der Reihe "Memory Release with Python".
Zielen Sie auf die Liste / das Array, um die Variablen zu finden und zu löschen, die den Speicher belegen.
Definieren Sie die folgende Funktion.
def print_varsize():
    import types
    print("{}{: >15}{}{: >10}{}".format('|','Variable Name','|','  Size','|'))
    print(" -------------------------- ")
    for k, v in globals().items():
        if hasattr(v, 'size') and not k.startswith('_') and not isinstance(v,types.ModuleType):
            print("{}{: >15}{}{: >10}{}".format('|',k,'|',str(v.size),'|'))
        elif hasattr(v, '__len__') and not k.startswith('_') and not isinstance(v,types.ModuleType):
            print("{}{: >15}{}{: >10}{}".format('|',k,'|',str(len(v)),'|'))
Was Sie tun, ist einfach "Aus den globalen Variablen werden nur die Variablen extrahiert, die das Größenattribut oder das Attribut \ _ \ _ len \ _ \ _ haben, und der Name und die Größe oder Länge dieser Variablen werden ausgegeben." Nur. (Von den Variablen werden diejenigen, die mit '_' beginnen, und diejenigen, deren Typ Modul ist, vom Druckziel ausgeschlossen.)
>>> import numpy as np
>>> lst = [3,1,4,1,5]
>>> tpl = (1,5,3)
>>> a=np.zeros((100,100,3))
>>> print_varsize()
|  Variable Name|      Size|
 -------------------------- 
|            lst|         5|
|            tpl|         3|
|            Out|         0|
|              a|     30000|
|             In|         8|
Auf diese Weise sind große Listen und Anordnungen offensichtlich.
Wenn Sie es soweit schaffen,
del a
Sie können unnötige Variablen angeben und löschen. Sie können Speicher freigeben und bequem mit Python weiterarbeiten.
Recommended Posts