JVMTI is a two-way interface that allows communication between the JVM and a native agent. It replaces the JVMDI and JVMPI interfaces.
JVMTI allows third parties to develop debugging, profiling, and monitoring tools for the JVM. The interface contains mechanisms for the agent to notify the JVM about the kinds of information it requires. The interface also provides a means of receiving the relevant notifications. Several agents can be attached to a JVM at any one time. A number of tools are based on this interface, such as Hyades, JProfiler, and Ariadna. These are third-party tools, therefore IBM® cannot make any guarantees or recommendations regarding them. IBM does provide a simple profiling agent based on this interface, HPROF.
-agentlib:<agent-lib-name>=<options>or
-agentpath:<path-to-agent>=<options>For example:
-agentlib:hprof=<options>assumes that a folder containing hprof.dll is on the library path, or
-agentpath:C:\sdk\jre\bin\hprof.dll=<options>
For more information about JVMTI, see http://java.sun.com/javase/6/docs/technotes/guides/jvmti/.
For advice on porting JVMPI-based profilers to JVMTI, see http://java.sun.com/developer/technicalArticles/Programming/jvmpitransition.
For a guide about writing a JVMTI agent, see http://java.sun.com/developer/technicalArticles/Programming/jvmti.