Previous Topic

Next Topic

Book Contents

Book Index

JVMTI

This document contains the list of JVMs, OS and CPU architecture that the mBProfiler supports through JVMTI.

JVMTI, the new standard API (Java 5 and newer) Starting with Java 5, a new standardized API was introduced – JVMTI (https://docs.oracle.com/javase/1.5.0/docs/guide/jvmti/index.html). It had replaced JVMPI API used in previous Java versions. JVMTI utilizes so-called "bytecode instrumentation". This means that profilers, in order to collect profiling information, should modify the bytecode of profiled application, inserting at certain points some supporting bytecode instructions. There may be some performance issues because of this. The implementation of JVMTI in Java 5 has several drawbacks, which have been solved in Java 6:

The minimum version required is Java 8.

The Just-in-Time compiler must be disabled when using Oracle JDKs no matter on what OS. Otherwise, unexpected problems may occur and invalid data may be present. To disable the Just-in-Time compiler, include the -Djava.compiler=NONE property in the start script of the application that is being profiled. For Skelmir CEE-J® VM the property is -Xnojit. For Aonix Perc® Ultra the property is -nojit.

JVM skips empty methods, therefore no events are sent for them. In order to receive them, add -Xdebug option.

64-bit Oracle JDK VMs are supported for profiling, after 1.6.0 build 14.

If using a 64-bit JVM, to force usage of 32-bit offsets instead of 64-bit pointers, use the -XX:+UseCompressedOops (http://www.oracle.com/technetwork/java/javase/tech/vmoptions-jsp-140102.html) JVM argument every time you start profiling.

Windows (x86 & x64)

Profiler agent library

Comment

Location

proft.dll

Standard version x86

dropins/mBProfiler/agents/win-x86

proft.dll

Standard version x64

dropins/mBProfiler/agents/win-x86_x64

Java VM

Profile Mode

Oracle JDKs

-

Oracle JDK 1.1.8

Not supported

Oracle JDK 1.2.2

Not supported

Oracle JDK 1.3

Not supported

Oracle JDK 1.4

Not supported

Oracle JDK 1.5

Not supported

Oracle JDK 1.6

Not supported

Oracle JDK 1.7

Not supported

Oracle JDK 1.8

Supported, no sleeping state of threads in threads view

Other JVMs

-

Skelmir CEE-J® VM 2.x

Supported WAIT looks like SLEEP, actual SLEEP is not sent, no threads status in monitor dump, no class loader information

Skelmir CEE-J® VM 3.x

Supported WAIT looks like SLEEP, actual SLEEP is not sent, no threads status in monitor dump, no class loader information

Skelmir CEE-J® VM 4.x

Supported WAIT looks like SLEEP, actual SLEEP is not sent, no threads status in monitor dump, no class loader information

Aonix Perc® Ultra 5.x

Supported, but no sleeping state of threads in threads pane, no class loader information, monitor dump does not work, toString does not work.

Aonix Perc® Ultra 6.x

Supported, but no sleeping state of threads in threads pane, no class loader information, monitor dump does not work, toString does not work.

Mac OS X x64

Profiler agent library

Comment

Location

libproft.dylib

Standard version x64

dropins/mBProfiler/agents/macosx-x86_64

Java VM

Profile Mode

JDK 1.5.0

Not supported

JDK 1.6.0

Not supported

JDK 1.7.0

Not supported

JDK 1.8.0

Supported, no sleeping state of threads in threads view

Linux (x86 & x64)

Profiler agent library

Comment

Location

libproft.so

Version with support for real CPU time (x86)

dropins/mBProfiler/agents/linux-x86-generic

libproft.so

Version with support for real CPU time (x64)

dropins/mBProfiler/agents/linux-x86_64-generic

Java VM

Profile Mode

Oracle JDKs

 

Oracle JDK 1.1.8

Not supported

Oracle JDK 1.2.2

Not supported

Oracle JDK 1.3

Not supported

Oracle JDK 1.4

Not supported

Oracle JDK 1.5

Not supported

Oracle JDK 1.6

Not supported

Oracle JDK 1.7

Not supported

Oracle JDK 1.8

Supported, no sleeping state of threads in threads view

Other JVMs

 

Skelmir CEE-J® VM 2.x

Supported WAIT looks like SLEEP, actual SLEEP is not sent, no threads status in monitor dump, no class loader information

Skelmir CEE-J® VM 3.x

Supported WAIT looks like SLEEP, actual SLEEP is not sent, no threads status in monitor dump, no class loader information

Skelmir CEE-J® VM 4.x

Supported WAIT looks like SLEEP, actual SLEEP is not sent, no threads status in monitor dump, no class loader information

Aonix Perc® Ultra 5.x

Supported, but no sleeping state of threads in threads pane, no class loader information, monitor dump does not work, toString does not work.

Aonix Perc® Ultra 6.x

Supported, but no sleeping state of threads in threads pane, no class loader information, monitor dump does not work, toString does not work.