/ / Qu'y a-t-il exactement derrière / dans la gestion de la mémoire de l'iPhone? - iphone, ios, gestion de la mémoire, mémoire virtuelle

Qu'y a-t-il exactement derrière / dans la gestion de la mémoire de l'iPhone? - iphone, ios, gestion de la mémoire, mémoire virtuelle

Cette question est NE PAS à propos de conserver / libérer des choses dans la gestion de la mémoire iphone. Je comprends très bien la routine et il n'y a pas de fuites de mémoire dans mon application.

Je soulève la question indiquée dans le titre lorsque j'utilise Activity Instruments pour surveiller l'activité de mémoire globale de mon application.

L’instrument montre toujours que la quantité deLa "vraie mémoire", utilisée par mon application, reste comprise entre 21 Mo et 30 Mo, jamais plus. Je pense que ce montant est relativement peu élevé. Cependant, parfois, mon application donne un avertissement de mémoire de niveau 1 ou 2 (ne plante jamais et je ne fais rien pour cet avertissement dans mon code).

alors je me demande ce qui est vraiment derrière l'iphonechose de la mémoire. Je veux dire, la mémoire réelle est-elle la seule chose qui déclenche des avertissements? ou y a-t-il autre chose (comme de la mémoire virtuelle, comme indiqué dans les instruments) dans toute la mémoire dont je devrais m'occuper?

Bien que mon application ne se bloque jamais en raison de problèmes de mémoire, cet avertissement (en particulier l'avertissement de niveau 2) m'énerve vraiment et me fait craindre de tomber en panne une fois que je la publie à l'avenir.

De l'aide?

Merci

Réponses:

4 pour la réponse № 1

Des avertissements de mémoire existent pour indiquer à votre application que vous "approchez de votre limite. Ils ne sont pas nécessairement une" mauvaise "chose - de nombreuses applications les ignorent tout simplement.

Les détails de la mise en œuvre réelle sur quand un avertissement mémoire déclenché n'a pas d'importance et varie en fait considérablement d'un périphérique à l'autre. Un iPhone 4 pourrait avoir 512 Mo de RAM pour jouer, mais un 3GS aura la moitié.

Cela dit, il y a des choses à savoir sur les avertissements de mémoire:

  • Un avertissement de mémoire est déclenché lorsque le global la quantité de mémoire disponible atteint un certain niveau
  • Ces niveaux sont sans papiers. Donc, vous ne savez pas quelle est la différence entre un avertissement de niveau 1 et un avertissement de niveau 2, à part le fait que 2 est pire (plus urgent) que 1
  • Les avertissements sur la mémoire ne sont pas spécifiques à une application. Un avertissement de mémoire est envoyé à tout applications en cours d'exécution et non suspendues. Vous n'êtes donc peut-être pas directement responsable du déclenchement.
  • Lorsque des avertissements de mémoire sont reçus, le système essaiera de libérer de la mémoire pour vous

Encore une fois, les détails de l’implémentation ne sont pas documentés et vous ne devriez pas vous en soucier. Un avertissement concernant la mémoire est une opportunité pour vous. Aidez-moi le système en libérant tous les objets dont vous n’avez pas besoin.