2014-05-01 1 views
0

Je suis un débutant sur ce sujet, donc j'ai étudié sur MAT sur Internet, mais les articles étaient assez vieux, et il y avait quelque chose à propos de la création d'un tas et de convertir manuellement le fichier en autre format etc etc ..... mais dès que je clique sur dump du tas que je reçois ceComment utiliser MAT en éclipse pour trouver des fuites de mémoire

enter image description here

donc je devine que je ne ai pas besoin de le convertir plus ou dois-je ??

et je voudrais demander que mon application prend environ 40-120 mb ram.the taille continue d'augmenter en raison de fuites de mémoire comment trouver quelle variable le cause? Peut-on même trouver des allocations de mémoire pour les variables séparées?

Répondre

0

Vous n'avez pas besoin de le convertir plus, hprof est plus que suffisant pour trouver des fuites de mémoire

En MAT vous cliquez sur le menu et Histogramme dominator_tree. Les deux afficheront la liste des objets d'exécution et la taille respective du tas conservé. Vous pouvez facilement obtenir le point de départ pour l'analyse de code en fonction de la taille du segment de mémoire conservée et aller à la racine de la fuite de mémoire.

En outre, si vous cliquez sur les suspects de fuite, vous obtiendrez la liste des suspects de problème.

+0

bien merci mais comme je n'ai pas pu le trouver en utilisant mat, j'ai changé toute la structure de mon code, annulant les valeurs quand elles ne sont pas obligatoires et ça m'a beaucoup aidé ...: D aussi Si le contexte n'est pas annulé, l'activité n'est pas détruite ce qui entraîne des fuites de mémoire .... Toujours avoir quelques fuites de mémoire mais le montant a considérablement diminué: D –

+0

Je dois encore savoir comment effacer les dispositions ..will les annuler aide-t-il? –

+0

Absolument, l'annulation d'objet après utilisation est une bonne pratique. En fermant vos objets JDBC Conn, etc. Si vous rencontrez toujours un problème, il est toujours recommandé d'utiliser certains droits comme MAT pour en trouver la cause. Vous pouvez même vous JConsole pour voir la consommation de mémoire de votre application au moment de l'exécution. Comme son temps d'exécution, vous trouverez facilement lorsque la demande de mémoire est plus élevée et vous pouvez vous concentrer sur des fonctionnalités particulières. –

Questions connexes