博客
关于我
java.lang.OutOfMemoryError内存溢出定位
阅读量:649 次
发布时间:2019-03-15

本文共 1033 字,大约阅读时间需要 3 分钟。

OM 内存溢出定位

在处理 Java 运行时内存溢出问题时,以下是一些实用的定位方法和技巧。以下内容经过优化,旨在帮助开发者快速定位并解决内存溢出问题。

  • 增加异常时记日志参数
  • 在 JVM 内存溢出时,启用记日志功能可以帮助快速定位问题。

    • -XX:+HeapDumpOnOutOfMemoryError:启用内存溢出时的堆转储功能。此参数会在内存溢出发生时,将堆转储存入指定路径下的文件,文件名格式为 java_pid%p.hprof,其中 %p 为进程号。

    • -XX:HeapDumpPath=/tmp/dump:指定堆转储文件的保存路径。

    1. GC 分析
    2. 分析垃圾回收器的行为和性能,找出内存溢出问题的根本原因。

      • 查看 JVM 设置

        • 使用命令jps -v | grep pid 查找目标进程 ID(pid)。

        • 查看 JVM 配置jinfo pid

      • 垃圾回收器类型

        举例如:查看某进程使用的垃圾回收器类型,执行命令 java -Xlog:gc*log:file=gc.log

      • GC 原因分析

        为了分析垃圾回收器的GC原因,可执行以下命令查看原因文件:

        jstat -gccause pid
      • GC 次数和时间统计

        查看 garbage collection 的详细统计信息,包括 GC 次数、总时间等:

        jstat -gcutil pid
      • 内存使用情况

        查看各代内存的使用和占用量:

        jstat -gccapacity pid

        该命令输出的内容可帮助分析新生代(Young Generation)、旧生代(Old Generation)以及持久代(Permanent Generation)的内存使用情况。单位为 KB。

      1. 查看内存最多的对象
      2. 通过导出堆转储文件,使用工具分析内存泄漏问题。

        • 导出堆转储文件

          集中指定路径下的临时文件,执行以下命令:

          jmap -dump:format=b,file=dump pid

          其中 pid 是目标进程的 PID(可以通过 jps 查询)。

        • 分析转储文件

          使用 MAT 工具或 Eclipse 的内存分析工具来解析生成的堆转储文件。

        • 查看堆栈文件

          如果需要深入查看转储文件中的具体问题,可以使用 jhat 工具:

          jhat dumpfile

          注意:jhat 工具会以 HTTP 7000 端口提供 Web 界面,方便查看转储文件中的堆栈信息。

        通过以上方法,可以有效定位内存溢出问题,快速找到内存泄漏的根本原因。

    转载地址:http://pncmz.baihongyu.com/

    你可能感兴趣的文章
    could not initialize proxy - no Session (SSH)
    查看>>
    cmd编译.java文件 : java:720: 错误: 编码GBK的不可映射字符 Why ? ? ? ?
    查看>>
    【Jquery】获取当前窗口的宽度值/高度值
    查看>>
    Android 架构组件 – 让天下没有难做的 App
    查看>>
    启动MongoDB出现1053错误
    查看>>
    能解决数据可视化大屏需求的3款可视化工具
    查看>>
    欢迎来到小迪博客
    查看>>
    【Altium Designer21】工作栏中文解析
    查看>>
    [87]用secureCRT连接虚拟机中的Ubuntu系统,出现“远程主机拒绝连接”错误
    查看>>
    Shell脚本防DNS攻击检测并删除肉机IP
    查看>>
    如何在VSCode中定制JSON的IntelliSense
    查看>>
    椭圆曲线的定义
    查看>>
    多代理区块链框架客户端的操作
    查看>>
    RSA操作中的公钥和私钥的生成
    查看>>
    go语言中类的继承和方法的使用
    查看>>
    caffe训练的时候遇到的text-format 错误解决方案。
    查看>>
    Java 8新特性(一):Lambda表达式
    查看>>
    Little Zu Chongzhi's Triangles
    查看>>
    算法入门
    查看>>
    cf-A. Wet Shark and Odd and Even(水)
    查看>>