J'utilise l'outil ObjectAlloc d'Instument pour essayer de comprendre ce que la mémoire de mon application (iPhone) fait et quand et où elle le fait.
J'aimerais vraiment une explication de base de ces statistiques:
Lorsque j'essaie de déterminer la quantité de mémoire utilisée par mon application, dois-je consulter les octets actifs ou les octets globaux? Cela comprend-il une fuite de mémoire? Quels sont les objets transitoires?
Merci
ObjectAlloc
suit toutes les allocations et désallocations de mémoire au cours de l'exécution de votre programme.
Le Living bytes, or Net bytes
est la quantité de mémoire utilisée par votre application au moment que vous sélectionnez dans la chronologie. Cela inclura la fuite de mémoire, car la fuite de mémoire n'est jamais désallouée.
#Living
est le nombre d'allocations d'un certain type de taille/objet (et qui sont toujours allouées). Ceci est très utile lors de la recherche de fuites.
Par exemple, si vous effectuez une action de manière répétitive (comme entrer dans un contrôleur de vue modal), et que vous voyez que #Living
d'un objet croît de la même façon à chaque fois, alors vous fuyez probablement ces objets. Vous pouvez ensuite confirmer en explorant et en voyant la ligne de code exacte qui alloue les objets, et même voir l'index de temps que chacun a été créé.
Overall bytes
inclut la mémoire qui a été libérée. Il est utile de suivre ce nombre à des fins d'optimisation des performances, mais pas si vous essayez simplement de voir votre empreinte mémoire actuelle ou de rechercher des fuites.
Explication des statistiques de Apple docs. Lien vers le document