请解释 JVM 如何在底层收集 ThreadDump。
我不明白它如何收集脱离 CPU 的线程的堆栈跟踪(等待磁盘 IO、网络、非自愿上下文切换)。
例如,linux perf 仅收集有关 CPU 线程(使用 CPU 周期)的信息
我真的很想知道如何捕捉 JIT 的去优化事件。
今天,我读到了 Andrei Pangin 的精彩回答当忙碌的 Java 线程绑定到物理核心时,是否会因为到达代码中的新分支而发生上下文切换?并再次考虑。
我想用 JNI+JVMTI 捕捉 JIT 的去优化事件,如“unstable_if、class_check 等”,然后向我的监控系统或其他任何东西发送警报。
是否可以?它对 JVM 的性能有什么影响?