HPjmeter-comme outil graphique pour afficher -agentlib:hprof de profilage de sortie

Quels sont les outils disponibles pour afficher la sortie de l'intégré dans la JVM profiler? Par exemple, je commence mon JVM avec:

-agentlib:hprof=cpu=times,thread=y,cutoff=0,format=a,file=someFile.hprof.txt

Cela génère une sortie dans le hprof ("JAVA PROFIL 1.0.1") format.

J'ai eu du succès dans le passé à l'aide de HPjmeter pour afficher ces fichiers de sortie, d'une manière raisonnable. Cependant, pour quelque raison que ce soit les fichiers qui sont générés à l'aide de la version actuelle de la JVM de Sun ne parviennent pas à charger dans la version actuelle de HPjmeter:

java.lang.NullPointerException
    at com.hp.jmeter.f.jb.a(Unknown Source)
    at com.hp.jmeter.f.a.a(Unknown Source)
    at com.hp.c.a.j.z.run(Unknown Source)
Exception in thread "HPeprofDataFileReaderThread" java.lang.AssertionError: null pointer exception from loader
    at com.hp.jmeter.f.a.a(Unknown Source)
    at com.hp.c.a.j.z.run(Unknown Source)

(Pourquoi seraient-ils obscurcir le pseudo-code d'un produit gratuit?!)

Deux questions se posent:

  1. Personne ne sait la cause de cette HPjmeter erreur? (MODIFIER: Oui-voir ci-dessous)
  2. Ce que d'autres outils existent pour lire hprof fichiers? Et pourquoi il n'y a aucun de Soleil (sont-ils)?

Je sais que le Eclipse TPTP et d'autres outils peuvent surveiller JVMTI de données à la volée, mais j'ai besoin d'une solution de processus de l'généré hprof fichiers après le fait depuis le déploiement de la machine ne dispose que d'un JRE (pas un JDK) intallé.

MODIFIER: très utile HPjmeter développeur a répondu à ma question sur un HP ITRC forum indiquant que heap=dump doit être inclus dans le -agentlib options temporairement jusqu'à ce qu'un bug dans HPjmeter est fixe. Cette information permet de HPjmeter viable à nouveau, mais je vais quand même laisser la question ouverte pour voir si quelqu'un connait d'autres outils.

MODIFIER: à partir de la version 4.0.00 de HPjmeter (disponible 05/2009) ce bogue a été corrigé.

OriginalL'auteur David Citron | 2009-04-01