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. |