Re: Difference between Sun Java Agent vs IBM Java Agent
The JVM originating from Sun/Oracle/OpenJDK allows agent to re-write application bytecode on the fly with no significant performance penalty, meaning that the agent can dynamically change instrumentation at runtime when necessary.
The J9 JVM from IBM allows the same capability, but even requesting it disables certain runtime code optimisations that the JVM can make, meaning that the CPU cost per unit of work in the J9 JVM is higher if this ability is enabled.
The only difference between our 2 flavours of java agent is that the "IBM Java Agent" does not request the ability to retransform classes at runtime, so as not to force applications to incur this performance penalty. (Obviously, this has the downside that it cannot change instrumentation on the fly)
The above is entirely independent of what applications / frameworks you are running, so you should choose the agent based on whether the JVM is J9 or the HotSpot one.
Found something helpful? Click the Accept as Solution button to help others find answers faster.