Question

Question de base: JVM fournit JVMTI qui API native pour le profilage et le débogage machine virtuelle Java. l'instrumentation machine virtuelle Java fait de même (est-ce exact?). Si oui, quelle est la différence entre les deux?

Était-ce utile?

La solution

Je ne pense pas que L'instrumentation est JVMTI est de Superset Instrumentation .. que deux peuvent être utilisés indépendamment.

JVMTI est basée sur les événements et les gestionnaires d'événements, nous pouvons recueillir des informations nécessaires sur la machine virtuelle Java.

L'instrumentation est quelque chose dans lequel nous modifions le bytecode et donc à son tour ajouter pièce supplémentaire de code à l'exécution à l'emplacement requis dans la classe avant de charger dans la machine virtuelle Java. ce morceau de code supplémentaire lorsqu'il est exécuté, permettra de recueillir des informations nécessaires à la profileur.

L'instrumentation peut être réalisé avec l'aide de divers pot tiers est comme ASM.

Comme par ma connaissance et de l'expérience deux sont pour Java profilage et non pour le profilage autochtone.

Probablement besoin de lire plus de documents et tryout échantillons différents pour une meilleure compréhension.

Autres conseils

JVMTI donne toutes les fonctionnalités les besoins de débogage, si vous voulez plus que ce que l'JVMTI vous fournit besoin d'utiliser Instrumentation.

JVMTI est une fonctionnalité de base qui fournit toutes sortes d'événements pour le débogage, le profilage, etc ... L'un des domaines qu'il fournit est l'accès à intercepter (et redéfinissent) classes. java.lang.instrument est un wrapper Java sur le dessus de JVMTI qui offre un agréable, facile, de manière accessible d'obtenir les événements de chargement de classe.

Pensez à JVMTI comme pure de surensemble java.lang.instrument, mais oblige l'utilisateur à écrire du code C.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top