Quel est un bon moyen d'estimer l'empreinte mémoire d'un objet? Inversement, quelle est une bonne façon de mesurer l'empreinte?Python: Comment estimer/calculer l'empreinte mémoire des structures de données?
Par exemple, dire que j'ai un dictionnaire dont les valeurs sont des listes d'entier, float tuples:
d['key'] = [ (1131, 3.11e18), (9813, 2.48e19), (4991, 9.11e18) ]
J'ai 4G de mémoire physique et je voudrais savoir à peu près combien de lignes (clés: valeurs) Je peux stocker dans la mémoire avant que je déborde dans l'échange. C'est sur Linux/Ubuntu 8.04 et OS X 10.5.6.
En outre, quelle est la meilleure façon de comprendre l'empreinte réelle en mémoire de mon programme? Comment puis-je mieux comprendre quand il y a épuisement de la mémoire physique et débordement?
Pourquoi y a-t-il 6 objets 'str' dans 'd'? –
Lors de la liaison d'une nouvelle variable, une nouvelle chaîne est créée ('d'). La recherche d'attribut (tas) compte pour un autre. Je ne sais pas d'où vient le reste. –
Les résultats réels varient et vous devez soit les vérifier par rapport à la mise en œuvre d'interpréteur particulière que vous utilisez, soit faire quelques essais et erreurs pour trouver la variance. Par exemple, j'ai juste essayé l'exemple ci-dessus et il a rapporté trois chaînes totalisant 96 octets. –