Я использовал профилировщик Net Beans, который использует те же основы, что и Visual VM.
Я работал со старой версией Weblogic, которая подразумевала использование 1.5 JVM, поэтому я не мог выполнить динамическое присоединение. У приложения, которое я профилировал, было несколько тысяч классов, и моя рабочая станция была практически непригодна для использования, в то время как профилировщик инструктировал их всех. Как только измерительные приборы были завершены, система стала вялой, но не полностью непригодной для использования. Степень замедления действительно зависит от того, что вам нужно захватить. Основные показатели процессора довольно легкие. Профилирование выделения памяти сильно замедляет работу.
Я бы не использовал его в производственной системе. Помимо возможности замедления, я в конечном итоге исчерпал пространство PermGen, потому что профилировщик переустанавливает и перезагружает классы при изменении настроек. (Это может быть исправлено в агенте 1.6, я не знаю)