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