Rechercher et supprimer des variables gourmandes en mémoire sur Jupyter (IPython) -Qiita Le deuxième de la série "Memory Release with python".
Ciblez la liste / le tableau pour rechercher et supprimer les variables qui occupent la mémoire.
Définissez la fonction suivante.
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)),'|'))
Ce que tu fais est simple "A partir des variables globales, seules les variables qui ont l'attribut size ou \ _ \ _ len \ _ \ _ sont extraites, et le nom et la taille ou la longueur de cette variable sont affichés." Seulement. (Parmi les variables, celles qui commencent par "_ "et celles dont le type est module sont exclues de la cible d'impression.)
>>> 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|
De cette façon, de grandes listes et des arrangements sont évidents.
Si vous pouvez le faire jusqu'à présent,
del a
Vous pouvez spécifier des variables inutiles et les supprimer. Vous pouvez libérer de la mémoire et continuer à fonctionner confortablement sur Python.
Recommended Posts