web-dev-qa-db-fra.com

Quel Java profiler est meilleur: JProfiler ou YourKit?

Quel profileur est le meilleur pour le profilage à usage général et l'analyse de tas? 90% de nos applications sont des programmes de ligne de commande autonomes avec une base de données substantielle et un traitement numérique. Les 10% restants sont des applications de conteneur de webapps/servlet (avec très peu de JSP et AUCUN SCRIPLETS!). L'utilisateur cible serait un ingénieur logiciel senior avec 5 à 10 ans d'expérience dans l'industrie. Nous avons besoin de support uniquement pour Sun JDK 5 et.

Au moment d'écrire cette question (2008-10-02), JProfiler était à 5.1.4 et YourKit était à 7.5. Il semble que YourKit 8.0 sera bientôt disponible.

58
Trenton

J'ai utilisé à la fois JProfiler 4 et YourKit 7.5, et YourKit gagne haut la main. C'est tellement moins invasif que JProfile, en ce sens que je serai heureux de faire tourner des serveurs de production avec l'agent YourKit installé, ce que je ne ferais jamais avec JProfiler.

De plus, l'outil d'analyse fourni avec YourKit est plus intuitif (à mon avis), ce qui facilite la recherche de la cause première des problèmes.

38
skaffman

Si vous utilisez jdk> = 1.6_07, vous pouvez également consulter jvisualvm qui est fourni.

17
Steve B.

Ayant utilisé JProfiler et Yourkit récemment, je trouve que yourkit est de loin supérieur pour l'analyse des problèmes de mémoire et préfère fortement jprofiler pour l'analyse des performances. L'analyse de la mémoire de Yourkit semble être beaucoup plus facile et intuitive. Pour l'analyse des performances de votre kit, je n'ai pas réussi à résoudre tout problème de performances que j'ai essayé de résoudre avec votre kit. JProfiler affiche des informations plus précises et concises pour l'analyse des performances avec le nombre exact d'appels de méthode et le pourcentage de temps passé dans chaque méthode. Je n'ai pas encore trouvé cela dans votre kit. Il semble que votre kit ne donne que des informations d'échantillonnage qui ne sont pas exactes, sauf si vous mesurez des milliers d'invocations.

15
Jeramyn

J'ai largement utilisé JProbe, OptimizeIt et YourKit et ce sont tous des outils capables. Des 3, mon préféré est YourKit.

La seule fonctionnalité qui tue dans JProbe est la possibilité de passer d'un instantané de perf à une source annotée (avec décomptes et minutages). J'ai trouvé cela extrêmement utile.

9
Alex Miller

Aucun des outils autres que JXInsight n'effectue une véritable analyse des transactions de base de données:

http://www.jinspired.com/products/jxinsight/concurrency.htmlhttp://www.jinspired.com/products/jxinsight/olapvsoltp.html

La technologie Probes de JXInsight est également la seule qui pourrait même fonctionner en production, étant donné que nous réalisons un profileur netbeans 20x et votre kit 100x dans les tests de performances SPECjvm2008.

http://blog.jinspired.com/?p=272

Je suis l'architecte de JXInsight donc bien sûr je suis complètement partial mais en même temps je suis probablement plus qualifié que la plupart dans l'industrie Java pour faire une telle affirmation depuis que j'ai consacré les 8 derniers années à l'analyse des performances pour certaines des applications Java/J2EE les plus exigeantes en production.

Je dois souligner que JXInsight est conçu pour les ingénieurs de performance logicielle et pas seulement pour la session de profilage ad hoc occasionnelle. Nous avons plus de 4000 propriétés système pour configurer le runtime et plus de 600 bibliothèques d'extensions technologiques, de sorte qu'il pourrait être exagéré à moins que l'on ait un problème complexe à résoudre et/ou à utiliser le même outil à travers le développement, le test et la production est primordial.

Sincères amitiés,

William

8
William Louth

Avec Java 7 Update 40, Oracle inclus Java mission control (à l'origine intégré au JRockit JDK) - un outil de réglage des performances très puissant qui peut rivaliser avec votre kit/jprofiler.

Jetez un œil et soyez surpris.

7
MRalwasser

J'ai utilisé les deux et mon vote est définitivement JProfiler (dans la version actuelle 6) car il est plus facile à utiliser et dispose de nombreuses fonctionnalités supplémentaires utiles. Dans les versions précédentes, YourKit avait certains avantages avec des instantanés plus grands, mais cela a disparu maintenant.

5
larsk

Certainement YourKit ... Il a été capable d'ouvrir 4 vidages de tas avec seulement 1 g de tas utilisé. Alors que Jprofiler avec la même allocation de tas s'est écrasé!

4
Adnan Memon

j'ai utilisé votre kit et c'est un très joli profileur, le meilleur que j'aie jamais utilisé en Java (j'ai utilisé une variété d'autres au fil des ans) Cela étant dit, je n'ai jamais utilisé jprofiler, donc je ne peux pas faire de comparaison directe.

3
james

J'utilise JProfiler depuis des années et j'en suis très content. IntelliJ semble basculer sa recommandation entre YourKit et JProfiler, donc je suppose que leurs fonctionnalités sont similaires. Je crois qu'ils ont tous les deux une version d'essai.

1
Javamann

Yourkit Il s'agit d'une faible surcharge, stable, facile à installer sur la JVM pour être profilé (une seule DLL) et puissant. Pour analyser les vidages de tas, c'est le seul profileur qui se rapproche de Eclipse Memory Analyzer .

1
kohlerm

Pour un profilage rapide et sale des programmes en ligne de commande, JIP fonctionne très bien.

1
thoroughly

YourKit est génial. Vous pouvez également consulter le profileur intégré à NetBeans - c'est plutôt cool.

1
stephmara

AVIS DE NON-RESPONSABILITÉ: Autre réponse.

ils ont divers produits pour le suivi/profilage de la production contrairement aux autres outils principalement de temps de développement: http://www.jinspired.com/products/jxinsight/
Ce message sur le côté serveur sur JDBInsight: http://www.theserverside.com/news/thread.tss?thread_id=13488

AVERTISSEMENT: je ne suis pas associé à cette société à aucun niveau.

1
anjanb

J'ai utilisé YourKit. Je n'ai pas utilisé JProfiler. J'ai déjà utilisé OptimizeIt. J'ai une très bonne opinion sur YourKit. Il est très stable et une bonne interface graphique et une bonne liste de fonctionnalités. Une caractéristique unique que j'ai remarquée est le profilage du processeur avec et sans temps d'attente (comme les E/S), y compris.

Son prix est également très raisonnable (environ 1100 $ pour 5 licences, je pense)

1
Rejeev Divakaran

J'utilise JProfiler et le trouve globalement OK. Sa fonctionnalité d'instrumentation dynamique est cependant très biaisée pour les petites méthodes.

0
quant_dev

Certainement YourKit. C'est le plus intuitif et le plus stable!

0
pan40

J'utilise le profileur TPTP. la meilleure caractéristique est qu'il peut être intégré très facilement dans Eclipse, mais la mauvaise chose est qu'il ralentit le fonctionnement d'Eclipse.

0
vaibhav

Je n'ai utilisé que JProfiler (et certains JProbe). Pour autant que je sache, une limitation de YourKit est qu'ils ne semblent pas prendre en charge JDK 1.4.2. Ce n'est pas un problème pour beaucoup de gens, mais c'est possible.

0
David M. Karr

+1 pour votre kit --- en utilisant 7.0 sur les boîtes de développement dans Windows
n'a pas utilisé JProfiler pendant un certain temps - ne peut pas commenter car ils auraient pu s'améliorer entre-temps.

0
anjanb

En passant, vous voudrez peut-être considérer le profileur Netbeans - il est assez bon. Mais je n'ai utilisé aucun des deux que vous avez mentionnés.

0
Will Hartung