欢迎光临
我们一直在努力

jstack和dump使用区别

• 区别很直接:

  – jstack:看线程
  – heap dump:看堆内存里的对象

  具体说:

  jstack

  – 导出的是 JVM 线程栈信息
  – 用来排查:
      – 死锁
      – 线程阻塞
      – CPU 飙高
      – 哪个线程卡住了
  – 看到的是:
      – 线程状态 RUNNABLE / BLOCKED / WAITING
      – 每个线程当前执行到哪一行方法调用

  heap dump

  – 导出的是 JVM 堆快照
  – 用来排查:
      – 内存泄漏
      – 大对象是谁
      – 哪些对象占内存最多
      – 对象为什么没被回收
  – 看到的是:
      – 对象实例
      – 引用链
      – 各类对象数量和大小

  一句话记:

  – jstack 查“谁在执行、谁卡住了”
  – heap dump 查“内存被谁占了、为什么没释放”

  常见场景:

  – 服务卡死、响应慢:先看 jstack
  – OOM、内存持续上涨:看 heap dump

  补充:

  – jstack 文件通常小、获取快
  – heap dump 文件通常很大,导出和分析都更重

赞(0)
未经允许不得转载:171主机测评 » jstack和dump使用区别
分享到: 更多 (0)

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址