En Java, le profilage, il semble que tous (gratuit) routes aujourd'hui conduire à la VisualVM profiler inclus avec JDK6. Il ressemble à une amende de programme, et tout le monde vante les mérites comment vous pouvez "de l'attacher à un processus en cours d'exécution" comme un élément majeur. Le problème est, ce qui semble être la seule façon de l'utiliser sur un processus local. Je veux être en mesure de commencer mon programme dans le générateur de profils, et d'en suivre la totalité de l'exécution.
J'ai essayé d'utiliser l' -Xrunjdwp
option décrite dans la façon de profil de démarrage de l'application avec visualvm, mais entre les deux modes de transport (de mémoire partagée et le serveur), ce n'est pas utile pour moi. VisualVM ne semble pas avoir toute intégration avec l'ancien, et VisualVM refuse de se connecter à l' localhost
ou 127.0.0.1
, de sorte que le dernier n'est pas bon non plus. J'ai aussi essayé d'insérer une simple lecture de l' System.in
dans mon programme pour insérer une pause dans l'exécution, mais dans ce cas, VisualVM blocs jusqu'à ce que la lecture terminée, et ne vous permet pas de démarrer le profilage jusqu'après l'exécution est en cours. J'ai aussi essayé de regarder dans le plug-in Eclipse, mais le site est plein de liens morts et le lanceur se bloque avec un NullPointerException
quand j'essaie de l'utiliser.
Venant de C, cela ne semble pas être une tâche particulièrement difficile pour moi. Suis-je raté quelque chose ou est-ce vraiment impossible de demander? Je suis ouvert à toutes sortes de propositions, y compris l'aide d'un autre (également gratuit) profiler, et je ne suis pas opposé à la ligne de commande.