Connaissances Informatiques >> programmation >> Programmation Java >> Content
  Derniers articles
  • Comment remplacer les caractères sp…
  • Comment remplacer les noms de variab…
  • Comment facteur entiers en Java 
  • Comment vérifier Format EPS en Java…
  • Comment écrire un caractère dans l…
  • Comment calculer Pâques avec Java 
  • Comment initialiser un Servlet 
  • Comment dessiner des formes multiple…
  • Comment faire pour supprimer la ponc…
  • Processus concurrents dans un objet …
  •   Programmation Java
  • C /C + + Programming

  • Computer Programming Languages

  • Delphi Programming

  • Programmation Java

  • Programmation JavaScript

  • PHP /MySQL Programmation

  • programmation Perl

  • Programmation Python

  • Ruby Programming

  • Visual Basics programmation
  •  
    Programmation Java

    HashMap : Comment faire pour éliminer la cause d'une fuite de mémoire

    Les bibliothèques standard pour le langage de programmation Java fournissent la HashMap de classe. Une HashMap est une application de clés de valeurs, où les clés et valeurs peuvent appartenir à n'importe quelle classe de Java donnée. Parmi les autres opérations, HashMap fournit une méthode pour trouver la valeur associée à une clé donnée et d'ajouter et de supprimer ( clé, valeur ) paires de la HashMap . HashMaps sont une source fréquente d'erreurs de fuite de mémoire dans les programmes Java : les instances d'une classe sont gérées correctement par le code, mais une erreur de programmation qui les empêche d'être supprimé de la HashMap quand ils ne sont plus nécessaires . Parce qu'il ya au moins une référence exceptionnelle à ces objets orphelins , garbage collector Java ne peut pas récupérer leur mémoire , de sorte que le runtime Java finalement à court de mémoire de tas. Instructions
    1

    exécuter l'application Java avec l'outil profiler ( HPROF ) activée et l'enregistrement des profils de tas. La manière exacte de le faire dépend du système d'exploitation. Par exemple , sous Linux , démarrez l'application comme suit :

    java- Xrunhprof : file = mylog.txt , tas = des sites myApp

    Remplacer myApp par le nom de votre application Java. Cette invocation démarre la machine virtuelle Java (JVM ) en mode profilage ; . La JVM écrit la sortie du profileur de déposer mylog.txt
    2

    Faites votre processus de demande de certaines charges de travail, de sorte que les objets ( en particulier, HashMaps ) sont alloués et jeté. Prendre un instantané de l'état du tas . Par exemple , sous Linux , le profileur génère un instantané de l'état du tas lorsque vous exécutez :

    tuer -3 jvmPID

    Remplacer jvmPID avec l'identificateur de processus de l'instance JVM qui exécute votre application . HPROF ajoute un instantané du tas pour le contenu actuel du fichier mylog.txt .
    3

    Faites votre processus de demande à peu près la même quantité de travail ainsi que d'autres objets sont créés et ramasse-miettes . Prendre un autre cliché de l'état de la pile comme à l'étape 2.
    4

    comparer les deux photos prises dans les étapes 2 et 3. En particulier , regardez les lignes entre «sites BEGIN " et " END SITES . " Identifier les classes dont les objets ont le plus augmenté en nombre entre les deux clichés , ceux sont les seuls responsables de fuites de mémoire, que la charge traitée par votre application est à peu près constante sur les deux clichés
    5

    Examiner . les clichés d'identifier les parties du code allouer des objets qui ne reçoivent pas libérés lorsque cela est nécessaire . Pour cela, se concentrer sur les lignes commençant par «trace» qui ont un événement « " sur la ligne d'instantané , pour chacune des catégories identifiées à l'étape 4.
    6

    Inclure l' suppressions manquantes de références à des classes de problèmes pour les parties de votre code identifiés à l'étape 5. Les fuites de mémoire ne se produira plus .

     
    Article précédent:
    Article suivant:
    Articles recommandés
  • Qu'est-ce que la certification Architecte Java 
  • Comment utiliser des sprites animés dans Eclipse 
  • Comment faire pour modifier des variables unique dans un tableau en Java 
  • Comment installer les fichiers APK Envoyés 
  • Comment éviter une division par zéro Exception en Java 
  • Comment les numéros d'entrée en Java 
  • Comment retourner pixels en Java avec GetPixel 
  • How to Program in Flash Java 
  • Définition des mots réservés Java 
  • Comment compiler un fichier JSP 
  • Connaissances Informatiques © http://www.ordinateur.cc