2016-04-29 2 views
1

J'ai créé une application Windows Phone et je suis confrontée à des problèmes de mémoire. L'application se ferme à cause de l'utilisation de trop de mémoire. J'ai essayé de trouver des façons de comprendre, combien de mémoire est utilisée, quelles variables consomment le plus de mémoire, etc. et se ferme donc.Comment résoudre les problèmes de mémoire dans Windows Phone App

Cependant, je ne suis pas capable de savoir quelle variable consomme de la mémoire. Ou si ses images consomment de la mémoire. J'ai une variable appviewmodel et je pense que c'est peut-être trop grand mais je veux le confirmer. Comment puis-je savoir combien de mémoire utilise cette variable?

+0

Vous devez comprendre pourquoi les objets existent et quand ils ne devraient pas. https://www.yourkit.com/docs/80/help/memory_leaks.jsp –

Répondre

2

trous de mémoire Big proviennent généralement de gros fichiers ou grandes boucles de petites données. Avec un garbage collector, vous n'avez plus de trous de mémoire, mais comme les GC ne nettoient pas les variables qui sont encore utilisées, vous pouvez toujours gagner votre métrage de mémoire facilement. Cela peut également arriver avec des références cycliques de plusieurs objets.

Vous devriez donc vérifier votre code pour les références d'objets que vous ne libérez pas. Une chose est, que j'ai en mémoire que Windows Phone 8 avait une fuite de mémoire bitmap. Donc, vous devriez nettoyer vos images comme dans ce questions. Je ne suis pas sûr, si c'est ce dont je me souviens.

1

Si vous créez BitmapImage de .cs toujours décoder la hauteur pixels/largeur comme ceci:

BitmapImage bmp= new BitmapImage("ImageUrl"); 
bmp.DecodePixelHeight = 150;//image control size 
bmp.DecodePixelWidth = 150; 

Cela fait une différence !.