2010-12-16 4 views
0

Dans mon viewcontroller j'ai créé un UIImageView et assigné une image dans l'Interface Builder. Tout en vérifiant sur les instruments j'ai l'allocation de malloc de 600kb et la bibliothèque responsable est ImageIO_Malloc. Mais la taille de mon image est de 37ko. Je ne sais pas pourquoi il alloue 600kb.UIImage alloue plus de mémoire

J'ai également essayé avec le code en assignant UIImage imageNamed. Toujours pas bon.

Avez-vous des idées à ce sujet?

+0

L'allocation/initialisation d'un objet crée juste cela, un objet. La taille de la mémoire allouée ne devrait pas vraiment avoir de rapport avec la taille de l'image. Je ne m'inquiéterais vraiment pas à moins que tu ne le libères pas. –

+0

Je le libère correctement. Mais chaque fois que je passe à un autre viewcontroller j'ai assigné une image comme ceci et pour chaque viewcontroller cette allocation augmente ma mémoire à beaucoup de 600kbs – iPrabu

Répondre

2

600 Ko n'est vraiment pas beaucoup à allouer pour une image. Votre 37 Ko est probablement juste la taille du fichier image compressé. Cependant, lorsque cette image doit être affichée, la vue d'image doit allouer une mise en mémoire tampon pour qu'elle puisse être représentée en interne dans un format non compressé. Une image avec des dimensions de 640x480 pixels donnera 300.000 pixels, dont chacun a besoin et R, G, B, et la valeur alpha possible - ce qui signifie 3-4 octets par pixel. Vous pouvez donc facilement voir les allocations dans l'ordre de 600 Ko pour des images même assez petites.

+0

Donc si j'ai cinq images vues de taille 320x480 j'obtiendrai une allocation de 600x5 kilogrammes de taille. Puis-je réduire ces tailles d'allocation. – iPrabu

+0

Bien sûr, réduisez la dimension de l'image. Sinon, ne chargez pas les images dont vous n'avez pas besoin en mémoire. –

Questions connexes