VisualVM 是否检测字节码?

Is VisualVM instrumenting bytecode?

我有点困惑:AFAIK VisualVM 执行分析和采样,这是否意味着它不仅会生成转储(线程堆栈 + 内存状态)而且还会检测代码?

从这里: 解释了分析意味着检测。但是 VisualVM 是自己进行检测还是需要准备一些东西(比如 Java Agent 之类的)?

是的,当您使用 Profiler 时,VisualVM 将根据需要检测字节码。这只能通过代理来完成,因此 VisualVM 包含这样一个 Java 代理。当您连接到同一台机器上的 JVM 时,它可能会使用 Attach API to load the Agent into the target JVM dynamically。所以在这个用例中,用户端不需要额外的准备步骤。