2010-01-25 4 views
1

J'ai remarqué dans mon application que didReceiveMemoryWarning est appelé beaucoup plus rapidement si mon téléphone n'a pas été éteint depuis longtemps. Il semble presque que le pool de mémoire auquel mon application peut accéder se rétrécit avec le temps.Réduire la mémoire de l'iPhone?

Est-ce que quelqu'un d'autre a remarqué cela et y a-t-il une explication? Y a-t-il un plan d'action que je peux prendre pour éviter que cela ne se produise?

Je remarque que cela se produit lorsque j'utilise une bonne partie de la mémoire en prenant et en manipulant une image. Mise hors tension et redémarrage du téléphone aide à sortir. Est-il possible que la mémoire à laquelle mon application peut accéder soit réduite ou que la mémoire existante soit fragmentée et que le redémarrage défragmente la mémoire existante?

Toute explication ou aide concernant ce problème serait excellente. Merci.

Répondre

1

Oui, il s'agit malheureusement d'un comportement bien connu. Au fur et à mesure que le système d'exploitation fonctionne, il se développe de manière abusive et un redémarrage est finalement nécessaire pour effacer les choses. C'est pourquoi de nombreuses applications dans l'appstore demandent un redémarrage avant de jouer à leur jeu.

1

Les anciennes versions du démon de l'iPod, mediaserverd, avaient tendance à fuir.

Cela a abouti au comportement que vous décrivez.

Si un service système peut fuir, d'autres peuvent également en souffrir.

0

Ce n'est pas parce que nous ne faisons pas plusieurs choses que nos applications ne signifient pas que l'iPhone fait du multitâche.

Les pages Web ouvertes dans Safari restent en mémoire jusqu'à ce que le système d'exploitation envoie à Safari le même avertissement de mémoire que vous obtenez. Le courrier peut commencer à fonctionner pendant que votre application est en cours d'exécution et nécessite plus de mémoire. l'application iPod garde également un peu de mémoire pour elle-même. Si vous regardez la console de l'iPhone à l'aide de l'Organiseur alors que votre application reçoit un avertissement de faible niveau de mémoire, vous verrez probablement certaines des applications intégrées recevoir également des avertissements de mémoire et terminer des choses pour libérer de la mémoire. C'est très intéressant.

Questions connexes