I have doubts in JVisual VM profiler tool related to performance. I have requirement to implement a JVM Monitoring tool for my enterpise java application. I have gone through some profiling tools in market but all them are having some kind of agent file which we need include in server startup.
I have a fear that these client agent will degrade my application performance will more. So I have decided to JVisual VM because this profiler tool comes with JDK itself but before implementing JVisualVM, does anybody faces any issues with JVisualVM profiler tool?
As well as, is this safe if I implement in application?
JVisualVM can cause performance problem issues for your application. It all depends on what you’re doing with it. For example, if you’re monitoring some GC via the JVM’s MXBeans it has a fairly low impact (well actually, not that low if you’re constantly monitoring). Another example – if you’re profiling and recording thread dumps or stack trace dumps then yes you’re going to heavily impact the running application as you’re asking it to halt at safepoints all of the time whilst you collect information. Generally speaking you only want to do this when you know you have a performance issue happening at that time.
Massive disclaimer – I work for jClarity, we do have a unique approach which doesn’t involve an Agent and due to that (and a bunch of other reasons) we are genuinely low impact (we’re dead silent most of the time actually) Java/JVM performance monitoring tool. OK, I’ve said way too much on that.