172 votes

budget de mémoire maximum app iOS

Je suis en train de travailler sur un jeu pour ios qui est sur le ciblage de l'un minimum le 3gs. Nous utilisons HD actifs de l'affichage retina appareils (iphone 4, ipod touch 4ème gen).

Mémoire de sage, Ipod Touch 4ème gen semble être la plus contrainte appareil pour nous, car il a la même quantité de RAM (256 par rapport à l'Iphone 4 512) 3gs mais nous sommes à l'aide de HD actifs sur elle. L'application utilisé pour se bloquer lorsque vous essayez de charger 100-110 mo de ram, mais maintenant que nous en sommes à 70 MO, nous n'avons jamais eu de chargement de crash.

Après beaucoup de recherche, il semble y avoir aucun officiel ne dure limite alors, comment devrions-nous le faire au sujet de savoir ce que la mémoire budget à utiliser pour être en sécurité? Nous voulons être en mesure de donner aux artistes un budget qu'ils peuvent utiliser sans soucis de mémoire pour chaque carte.

473voto

Jasper Pol Points 1104

J'ai fait quelques tests avec l'utilitaire de Split a écrit (le lien est dans sa réponse).

Je n'ai pas tous les appareils disponibles, mais c'est ce que j'ai pu tester jusqu'à présent:

  • iPad1: 127MB/256 MO/49% (crash montant/montant total/pourcentage du total)
  • iPad2: 275MB/512 MO/53%
  • iPad3: 645MB/1024MB/62%
  • l'iPad Mini de 1ère Génération: 297/512 MO/58%
  • iPad Air: 697MB/1024MB/68%
  • iPhone4: 325MB/512 MO/63%
  • iPhone5: 645MB/1024MB/62%
  • iPhone5S: 646MB/1024MB/63%

144voto

Split Points 1816

J’ai créé le petit utilitaire qui tente d’allouer autant de mémoire que possible de l’accident et il enregistre quand les avertissements de mémoire et d’accident est arrivé. Cela permet de savoir quel est le budget de la mémoire pour n’importe quel appareil iOS.

https://github.com/Split82/iOSMemoryBudgetTest

47voto

Max Points 12661

Je pense que vous avez répondu à votre propre question: essayez de ne pas aller au-delà de 70 Mo, cependant cela dépend vraiment de beaucoup de choses: ce que la version d'iOS que vous utilisez (pas de SDK), le nombre d'applications en cours d'exécution en arrière-plan, ce qui exact de la mémoire que vous utilisez, etc.

Évitez simplement de la mémoire instantanée éclaboussures (par exemple, vous êtes à l'aide de 40 Mo de RAM, puis l'allocation de 80 Mo de plus de quelques courts calcul). Dans ce cas, iOS serait tuer votre demande immédiatement.

Vous devriez également considérer le chargement différé des actifs (charger uniquement lorsque vous en avez vraiment besoin et non à l'avance).

21voto

cprcrack Points 3040

Dans mon application, l’expérience utilisateur est préférable si l'on utilise davantage de mémoire, donc je dois décider si je devrais vraiment libre tous la mémoire je ne peux en `` . Basé sur la réponse de Split et de Jasper Pol, avec un maximum de 45 % de la mémoire de l’appareil total semble être un seuil sécuritaire (Merci les gars).

Dans le cas où quelqu'un veut regarder mon implémentation réelle :

8voto

Kobski Points 1132

Vous devriez regarder la session 147 de la WWDC 2010 Session des vidéos. Il est "Avancées d'Optimisation de la Performance de l'iPhone OS, partie 2".
Il y a beaucoup de bons conseils sur les optimisations de mémoire.

Certains conseils sont:

  • Imbriquer NSAutoReleasePools pour vous assurer que votre utilisation de la mémoire n'est pas spike.
  • Utiliser CGImageSource lors de la création des vignettes à partir d'images de grande taille.
  • Répondre aux avertissements de mémoire faible.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X