Je suis novice en programmation (j'ai appris à écrire des applications il y a quelques mois) et j'ai récemment écrit une application qui se bloque après 5 minutes avec plusieurs 'Avertissement de mémoire reçu. Niveau = 1 'avertissements. Pendant les tests avec des instruments, je n'ai pas pu détecter de fuites et je suis assez confiant que je libère les objets correctement, donc je suspecte que les problèmes de mémoire proviennent du grand nombre d'images png que j'utilise (environ 80). J'ai essayé de passer de la méthode -imageNamed à -imageWithContentsOfFile et je n'ai vu aucune réelle amélioration. Si quelqu'un pouvait offrir des conseils, je l'apprécierais vraiment car je suis complètement coincé.Mon application iPhone a des problèmes de mémoire et éventuellement des plantages - utilise beaucoup d'images
Répondre
Un manque de mémoire ne signifie pas nécessairement implique des fuites de mémoire. Cela pourrait signifier que vous avez demandé trop de mémoire à la fois. Dans votre cas, vous essayez probablement de créer plusieurs objets UIImage
qui existent tous simultanément. Sans voir beaucoup plus de votre code, il n'y a pas grand chose à dire, sauf essayer de trouver un moyen d'utiliser moins d'images en même temps.
Supposé UIImage
que vous chargez en utilisant imageNamed
déchargez leur contenu si possible, s'ils reçoivent des avertissements de mémoire. UIImage Reference, see Images and Memory Management Cela ne laisserait qu'un très petit conteneur vide UIImage
. Donc, je soupçonne que vous avez un autre problème.
Vérifiez la présence d'une boucle dans votre programme et assurez-vous qu'elle ne fuit pas d'une manière ou d'une autre.
Notez également que les fichiers PNG sur le disque sont beaucoup plus petits que l'image correspondante en mémoire. Si vos fichiers PNG sont volumineux, vous pourriez utiliser trop de mémoire. vous pouvez peut-être retarder le chargement d'images pour réduire votre empreinte.
- 1. plantages aléatoires de mon application
- 2. application lors du chargement des plantages initialement
- 3. Problèmes de mémoire IPhone
- 4. Identification des problèmes de mémoire dans une application ASP.NET
- 5. Meilleure application web qui utilise beaucoup de glisser et déposer des widgets sur une page
- 6. Comment déboguer des problèmes d'allocation de mémoire?
- 7. iPhone Problèmes d'allocation de mémoire
- 8. Si mon application n'utilise pas beaucoup de mémoire, puis-je ignorer viewDidUnload:?
- 9. a beaucoup de relations dans des rails
- 10. Java App avec beaucoup de problèmes de mémoire
- 11. La bibliothèque GD utilise-t-elle beaucoup de mémoire?
- 12. L'objet Cloned Cached a des problèmes de mémoire
- 13. iPhone - Problèmes de gestion de la mémoire
- 14. Comment faire pour que mon ordinateur utilise beaucoup de RAM?
- 15. mémoire problème des fuites iPhone
- 16. Pourquoi ai-je des problèmes de mémoire?
- 17. comment découvrir .dlls mon application utilise
- 18. Comment déboguer des plantages aléatoires?
- 19. Comment puis-je déboguer des plantages aléatoires dans mon application Web dans IE?
- 20. Importer des plantages XML Excel
- 21. Pourquoi mon application Cocoa utilise-t-elle autant de mémoire virtuelle?
- 22. ASP.NET: w3wp utilise beaucoup de mémoire et le processus ne répond pas
- 23. Drawrect provoquant des problèmes de mémoire
- 24. Les plantages d'application dus à la mémoire faible
- 25. Libération automatique de mutex sur des plantages sous Unix
- 26. Développement de site web RESTful et iphone (et éventuellement d'autres téléphones intelligents) application utilisant ASP.NET MVC
- 27. Mémoire des contacts sur iPhone?
- 28. Pourquoi mon pool d'applications a-t-il des pics d'utilisation de la mémoire?
- 29. Problèmes d'iPad et de mémoire
- 30. Organisation des fichiers et des classes dans XCode (application iPhone)
Merci pour les réponses! J'ai essayé de réduire un peu mon utilisation de l'image et je ne pense vraiment pas pouvoir couper plus sans vraiment réduire la qualité de l'application. Cependant, je reçois toujours des avertissements de mémoire, puis un crash éventuel. Ce qui m'embrouille, c'est que je n'ai pas de crash avant le 15ème niveau de mon jeu et qu'il n'y a pas de nouvelles images introduites entre les niveaux. Je n'ai toujours pas trouvé de fuite (j'ai utilisé des instruments et NSZombiesEnabled) donc je ne pense pas que ce soit le problème. Se pourrait-il que je ne pousse pas mes contrôleurs de vue à droite ou quelque chose? Je suis perplexe .... Merci encore pour toute aide. – mohabster1928
N'était-ce pas le but de 'NSZombies' que la mémoire ne soit en fait * pas * restituée pour que le zombie puisse se plaindre qu'il soit appelé après le dealloc officiel? Cela expliquerait les avertissements de la mémoire. Le moyen de résoudre cette classe de problèmes consiste à placer une partie du code dans une boucle, par ex. faites le * même * niveau 100 fois, et voyez si l'empreinte mémoire augmente chaque fois que vous faites ce même niveau. – mvds