2013-06-16 2 views
6

J'essaie de générer un vidage de tas à partir de mon programme Java, mais peu importe ce que je semble essayer, je n'arrive pas à comprendre comment faire.Génération de sauts de tas Java JRE7

J'ai téléchargé l'analyseur de mémoire Eclipse (Plugin puis Standalone) qui est censé être capable d'extraire des décharges de chaleur à partir de processus jre actifs. Pourtant, il n'en répertorie aucun. La documentation énumère plusieurs autres façons de les générer, mais je n'arrive pas à faire fonctionner l'un d'entre eux, ou ils font référence à quelque chose qui ne semble pas exister sur mon système. La même chose s'applique de tout ce que j'ai réussi à trouver sur le web ...

Le programme ne cause pas d'exception de mémoire insuffisante, il utilise simplement beaucoup plus de ressources que je ne l'attendais aussi.

Je suis juste à une perte complète comment exactement son supposé faire:/

Toute aide serait appréciée grâce.

+0

Avez-vous essayé et généré un vidage de tas manuellement sur une JVM en cours d'exécution en utilisant 'jmap'? – fge

Répondre

8

Vous pouvez le faire manuellement, en utilisant Java JDK jmap.exe. Vous obtenez le PID de votre processus.

  • Naviguez jusqu'à% JAVA_HOME%/bin/(JDK)
  • Dans la console (Invite de commandes) type jmap.exe -dump:format=b,file=C:\dump\dump.bin PID
    • fichier de vidage est enregistré dans le chemin que vous fournissez (dans mon exemple est C:\dump\dump.bin)
    Ensuite, vous pouvez utiliser l'EDI NetBeans pour analyser ce cliché. Il a un outils intégrés, il suffit d'importer le dump.bin.

  • +0

    Merci beaucoup, cela a fonctionné comme un charme! – user2491165