iOS Utilisation croissante de la memory

Je travaille actuellement sur un jeu que j'ai commencé il y a un certain time. Les progrès étaient bons et tout se passe bien, mais j'ai décidé d'essayer XCode Instruments pour vérifier s'il y avait des fuites dans mon code. J'utilise ARC et de nouveaux objects ne sont ajoutés que lorsque d'autres sont supprimés (une partie du fonctionnement interne de mon jeu), mais la taille totale de la memory ne cesse de croître au fur et à mesure qu'elle s'exécute.

Mon jeu est entièrement généré de manière procédurale et ne nécessite aucun actif. Il n'utilise également que quelques polygones mappés uniquement avec des colors, il n'y a donc pas de textures. Je m'attends à ce qu'il ne nécessite que quelques Mo pour fonctionner (ce qui commence avec) mais il ne cesse de croître.

Maintenant, j'ai remarqué quelque chose d'intéressant … Ce qui utilise la majorité des données est une input appelée IOAccelResource. Ce qui est étrange parce que je n'utilise aucune donnée d'accéléromètre / gyroscope / boussole. Je n'ai même pas référencé l'infrastructure CoreMotion dans mon projet.

La deuxième utilisation majeure de données est une collection de quatre mallocs qui ne cessent de croître. Il y en a quelques autres qui restnt relativement les mêmes.

Ces deux inputs ne sont cependant pas considérées comme des fuites par le programme. Et quand je dis à XCode d'parsingr mon code, cela ne montre aucun problème.

Toutes les autres inputs sont assez petites et fluctuent autour du même point, ou restnt simplement les mêmes.

Voici une capture d'écran des inputs gênantes: Entrées

Aucun conseil?

Si vous faites reference aux "Overall Bytes" ou "#Overall (éléments)", cela ne pose généralement pas de problème car cela permet de suivre l'utilisation totale de la memory (en d'autres termes, cela ne tient pas count de la memory).

Ce que vous devriez regarder est le "Live Bytes" et "# Living (éléments)" et s'assurer qu'il est en ligne avec vos attentes.

Vous verrez également que si "Overall Bytes" ne cesse de croître, votre application ne tombera pas en panne. D'un autre côté, si les "Live Bytes" ne cessent de croître, votre application tombera en panne.

Apple a réalisé qu'il y avait trop d'informations dans le profil des instruments et c'est pourquoi dans xCode5, il a directement distillé les informations importantes dans xCode: Lorsque vous utilisez votre application, click la 6ème icône (browser de debugging) dans le browser (colonne de gauche de xCode). Vous verrez l'indicateur de memory qui suivra "Live Bytes" seulement.

Aussi, si vous avez access aux videos de la WWDC 2013, consultez la session 410: Résolution des problèmes de memory.

J'espère que cela t'aides.