Comment vous y prendriez-vous conclusion sur la quantité de mémoire est utilisé par un objet ? Je sais il est possible de savoir combien est utilisé par un bloc de code, mais pas par un objet instancié (n’importe quel moment au cours de sa vie), qui est ce que je veux.
Réponses
Trop de publicités?Il n'y a pas de moyen facile de trouver la taille de la mémoire d'un objet python. Parmi les problèmes que vous pourriez constater que les objets Python - comme les listes et les dicts - peut avoir des références à d'autres objets python (dans ce cas, quelle serait votre taille? La taille contenant la taille de chaque objet ou pas?). Il y a quelques conseils généraux et les structures internes liées à des types d'objet et de collecte des ordures. Enfin, certains objets python ont la non-évidence de comportements. Par exemple, des listes de réserve de l'espace pour les objets qu'ils ont, la plupart du temps; dicts sont encore plus complexes puisqu'ils peuvent fonctionner de différentes façons (ils ont une mise en œuvre différente pour le petit nombre de touches et, parfois, ils ont plus de répartir les entrées).
Il y a un gros morceau de code (et une mise à jour gros morceau de code) pour essayer de mieux approximative de la taille d'un objet python dans la mémoire. Il y a aussi certains plus simples approximations. Mais ils seront toujours des approximations.
Vous pouvez également vouloir vérifier certains vieux de description sur la PyObject (l'interne de la structure C qui représente pratiquement l'ensemble des objets python).
Une autre approche consiste à utiliser le cornichon. Voir cette réponse à un doublon de cette question.
Je n'ai pas d'expérience personnelle avec l'un des suivants, mais une simple recherche pour "Python [mémoire] profiler" rendement:
PySizer, "un profileur de mémoire pour Python", à http://pysizer.8325.org/. Toutefois, la page semble indiquer que le projet n'a pas été mis à jour depuis un moment, et fait référence à...
Heapy, "le soutien[ing] de débogage et d'optimisation de mémoire, sur des questions liées Python programmes", à http://guppy-pe.sourceforge.net/#Heapy.
Espérons que cela aide.