web-dev-qa-db-fra.com

Meilleur et plus sûr Java Profiler pour une utilisation en production?

Je recherche un Java Profiler pour une utilisation dans un environnement de production très demandé, commercial ou gratuit, qui répond à toutes les exigences suivantes:

  • Intégration légère avec le code (pas de recompilation avec des options spéciales, pas de crochets de code, etc.). La suppression de certains fichiers .jars spécifiques au profileur à côté du code d'application est correcte.
  • Doit pouvoir se connecter/se déconnecter à la JVM sans redémarrer l'application.
  • Lorsque le profilage n'est pas actif, aucun impact sur les performances
  • Lorsque le profilage est actif, impact négligeable sur les performances. Une très légère dégradation est acceptable.
  • Doit faire tout le travail `` attendu '' qu'un profileur fait - le temps passé dans chaque méthode pour trouver des hotspots, l'allocation d'objet/profilage de mémoire, etc.

Essentiellement, j'ai besoin de quelque chose qui peut rester en dormance en production quand tout va bien sans que personne ne sache ou se soucie qu'il est là, mais être en mesure de s'y connecter sans tracas (et dégradation des performances) gratuitement pour identifier les problèmes difficiles à trouver comme les points d'accès et la synchronisation problèmes.

45
Peter

Avez-vous essayé YourKit ? Il possède presque toutes les fonctionnalités que vous recherchez.

20
Behrang Saeedzadeh

Java VisualVM est un outil qui fournit une interface visuelle pour afficher des informations détaillées sur les applications basées sur la technologie Java (applications Java) pendant leur exécution sur un Java Virtual Machine (JVM). Java VisualVM organise les données JVM qui sont récupérées par les outils Java Development Kit (JDK) et présente les informations d'une manière qui vous permet pour afficher rapidement les données sur plusieurs applications Java. Vous pouvez afficher les données sur les applications locales et les applications qui s'exécutent sur des hôtes distants. Vous pouvez également capturer des données sur le logiciel JVM et enregistrer les données sur votre ordinateur local). système et afficher les données ultérieurement ou les partager avec d'autres. Cela vient avec Oracle JDK it self ...

$ jvisualvm 
14

J'ai été satisfait de jProfiler .

11
brettw

Je préfère Java Flight Recorder . Il n'entraîne presque pas de surcharge de performances et possède une interface graphique agréable. Ajouter des paramètres JVM

-XX:+UnlockCommercialFeatures -XX:+FlightRecorder

-XX:StartFlightRecording=name=test,filename=test.jfr,dumponexit=true

et ouvrez l'enregistrement avec JMC.

4
jun
2
Kumar225

J'utilise Eclipse TPTP - Eclipse Test & Performance Tools Platform Project. Qu'il soit adapté à une utilisation en production ou non, cela dépend de l'utilisateur. Pour moi, c'est bien et cela répond à vos besoins.

http://www.Eclipse.org/tptp/

1
eee

Une autre option est http://www.newrelic.com/ . Nous l'utilisons en production depuis un certain temps, et il semble être assez fiable et performant. Simple à configurer (un .jar et une option de ligne de commande -agent).

1
magbyr

Il y a une autre nouvelle option appelée javosize

Quand j'ai cherché "best Java profiler" sur google, j'ai vu sur le premier lien non payant (c'est un blog), le même outil sur les commentaires du post:

https://blog.oio.de/2014/03/07/Java-profilers-a-short-comparison-between-jprofiler-yourkit-and-javas-visualvm /

J'espère que ça aide!

Modifier: Comme le disent les commentaires, le lien linkedin est vers un forum privé. Désolé pour cela. Voici le lien vers le site principal:

http://www.javosize.com/gettingStarted.html

1
Jorge Zazo

FusionReactor Java Application Performance Monitor, inclut également une surcharge très faible Java Profiler dans le cadre de son portefeuille de fonctionnalités. http: //www.fusion -reactor.com/production-Java-profiler/ FusionReactor peut être installé en quelques minutes et ils ont un essai gratuit de 14 jours pour le tester.

1
David Tattersall

Jetez un œil à Java Mission Control conjointement avec Flight Recorder . À partir de la sortie d'Oracle JDK 7 Update 40 (7u40), Java Mission Control est fourni avec la machine virtuelle Java HotSpot, il est donc hautement intégré et prétend avoir de petits effets sur les performances d'exécution. Il a une fonctionnalité d'arborescence d'appels comme Callgrind.

1
Muxiang Yang