-
JMX Vs JVMTI
Bonjour,
je viens de découvrir récemment le profiling d'appli java et je dois développer une solution de profiling de composants java, mais pour l'api j'hésite entre jmx et jvmti. en fait je n'arrive pas bien cerner la différence(avantages et inconvénients) des deux. Aussi serait-il possible de m'éclaircir sur ce point.
merci d'avance.
-
JMX est un système de monitoring ou disons plus largement de communication qu'offre la JVM.
JMX n'offre aucune aide à proprement parler pour le profiling, c'est la JVM (et certaines bibliothèques de profiling) qui expose leurs mécanismes de profiling via JMX.
JVMTI est une "interface"/"API" native pour accéder à des informations interne à la JVM et en modifier certains mécanismes par des outils comme les debugger et les profiler.
-
Merci bcp, pour ton éclairage. ce fut compliqué de trouver une réponse aussi claire dans la doc.
encore merci:ccool:
-
mais y aurait'il une différence entre les fonctionnalités proposées par les agents jmx et jvmti.
merci d'avance
-
En JMX, le service (ici l'agent) est limité à du monitoring simple. Il n'a accès qu'aux informations standards tout comme toi tu pourrais le faire en programmant un service JMX. Ca permet de faire pas mal de chose de manière globale mais rien de détailler puisque tu n'accèdes pas aux fonctions internes/"natives" de la JVM.
Tu pourrais donner un exemple d'agent qui se branche en JMX ? Car je vois pas ce que ça pourrait apporter de plus que JVisualVM.
En revanche pour le JVMTI il est possible de modifier le ByteCode des classes, modifier le comportement de la JVM, être notifier des événéments générés par la JVM, etc.