Java - 没有可用的堆栈跟踪

标签 java performance jvm stack-trace

我的应用程序消耗了 100% CPU - 200%。当我通过调用 Thread.getAllStackTraces()kill -3 创建线程转储时,我发现有些线程消耗大量 CPU 时间,但它们的堆栈踪迹不可用。 CPU 分析时不会显示它们。

线程是:HandshakeCompletedNotify-ThreadKeep-Alive-Timerprocess reaper。然而,它们的堆栈跟踪不可用。

据我了解,

Keep-Alive-TimerHandshakeCompletedNotify-Thread 不应该是 native 的。此外,我们对 jre 中的 java.policy 或 java.security 文件没有特殊权限。

如何获取这些线程的堆栈跟踪以解决高 CPU 消耗问题?

最佳答案

使用类似 visual vm 的分析工具

它具有 CPU 采样和分析支持,可显示 CPU 消耗情况。

关于Java - 没有可用的堆栈跟踪,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5808293/

相关文章:

java - 获取其他jvm的内存使用详情

java - 为什么java中的段错误是致命的?

java - 安全出版

Java LocalDate 格式化 2000-1-2 错误

java - 处理 - 渲染形状太慢

performance - 矩阵乘法有多昂贵?

performance - SSRS 性能之谜

文本文件解析器的 Java 字符串内存性能改进

java - 什么是 android ActionBar 的合适替代品?

java - Android Studio 错误 : "Environment variable does not point to a valid JVM installation"