java - 在 JVM 上进行定期线程转储 - ThreadMXBean 与 JVMTI 代理

标签 java performance monitoring jmx jvmti

我正在尝试构建一个系统,该系统在 JVM 进程上定期进行线程转储,以便以后在出现问题时可以对其进行分析。我打算在进行线程转储时将 JVM 的开销降至最低。获取线程转储的方法有多种,我最终列出了 2 个选项 - 构建自定义 JVMTI 代理或使用 ThreadMXBean。我想知道是否有人对哪种方法会导致 JVM 开销最少进行了分析?或者它们会导致相同的开销吗?

最佳答案

这在一定程度上取决于您所需的采样频率,但在大多数情况下,它会产生一些影响,并且结果会有偏差。如果您准备使用 JVMTI,那么一定要看看 Honest Profiler:https://github.com/RichardWarburton/honest-profiler

关于java - 在 JVM 上进行定期线程转储 - ThreadMXBean 与 JVMTI 代理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41061764/

相关文章:

java - 在 Java 中测量单线程复杂算法的最佳宏基准测试工具/框架是什么?

tomcat7 - 使用电子邮件通知进行 Tomcat 7 监控

就餐哲学家的Monitor类中的java.lang.IllegalMonitorStateException

java - TextView 返回 null

java - 推荐哪个 : Instant. now().toEpochMilli() or System.currentTimeMillis()

java - 为什么将一个变量赋值给另一个变量?

iphone - UI 设计 - 处理许多 UIButton 的最佳方式

c# - 测量进程内存使用给出极低(错误)的值

performance - Applescript - 迭代库中所有 iTunes 轨道的性能不佳

linux - 监控多台服务器