Le profilage d'une exécution d'une application Java en ligne de commande

J'ai le profil de l'exécution des applications Java souvent avec VisualVM, mais il a besoin de X sur la machine.

Je sais que je peux me connecter par le biais du port de gestion, mais qui sera un mode hors connexion échantillonnées de profilage qui n'est pas assez pour moi.

Donc je suis à la recherche d'une solution qui je peux le profil de l'utilisation du CPU par les méthodes de l'exécution d'une application Java à partir de la ligne de commande. C'est assez pour moi de recueillir des données sur le serveur, puis les données collectées peuvent être analysés sur une autre machine.

Mise à jour:

Il semble que j'ai besoin d'être plus précis. Je veux le profil d'une exécution d'une application Java en ligne de commande, je ne veux pas m'arrêter et relancez-le.

  • Vous pouvez collecter 10 ou 20 échantillons de la pile avec jstack? Alors si Foo est une méthode globale de son temps d'utilisation est la fraction des échantillons contenant. Son utilisation de l'UC est la fraction de ces échantillons qui ne se termine en I/O ou un appel système. Son "temps" est la fraction des échantillons dans lesquels il est lui-même le terminus.
  • que serait le même que le VisualVM hors-ligne de profilage, de ne pas l'être?
  • Cochez la doc. Il ne vous dit pas, par ligne (ne pas fonctionner) le pourcentage de temps d'inclusion (non exclusifs) qui est chargé de la, et de temps ensemble (et pas seulement de l'UC). Il souffre de la ces problèmes. Pile de l'échantillonnage n'est pas assez, mais il trouve que le rendement des problèmes très rapidement. D'autres outils sont à peu, et ils vous donnent beaucoup de chiffres pour comprendre, mais ils ne prennent pas directement au problème, quel qu'il soit.
  • J'ai essayé de trouver des traces de la pile, mais il refuse de se lancer sans le -F drapeau, avec qui il gèle mon application.
  • Hey, je n'ai pas besoin de quelque chose de joli. Je l'exécuter en vertu de l'IDE et de recueillir de cette façon, ou utiliser quelque chose comme jstack que des instantanés de la cheminée d'une application en cours d'exécution.
  • pourriez-vous poster votre commentaire est une réponse? Je l'accepterais!