您的位置:首页 > 房产 > 家装 > 作文网课哪家好_企业型网站建设_运营推广seo招聘_最新国内你新闻

作文网课哪家好_企业型网站建设_运营推广seo招聘_最新国内你新闻

2024/10/7 4:37:00 来源:https://blog.csdn.net/yang_brother/article/details/142441364  浏览:    关键词:作文网课哪家好_企业型网站建设_运营推广seo招聘_最新国内你新闻
作文网课哪家好_企业型网站建设_运营推广seo招聘_最新国内你新闻

内存泄漏排查

  • 1. 堆内存快照导出
  • 2. 导入内存分析工具

1. 堆内存快照导出


  1. 获取 Java 进程 ID

    • Windows:执行 jps 命令,或任务管理器查看,又或者执行 tasklist 命令。

      注意:当有多个 Java 进程时,任务管理器或 tasklist | findstr "java"无法区分特定进程,推荐使用 jps 命令

      在这里插入图片描述
      在这里插入图片描述
      在这里插入图片描述

    • Linux

      docker exec -it <容器ID或容器名> bash		#容器启动需要先进入容器,非容器启动直接执行下一条命令
      ps -ef | grep java	#查找java进程的进程ID,或直接执行pgrep java查找,又或者直接执行JDK提供的jsp命令
      
  2. 使用 jmap 生成 Heap Dump 文件

    JDK 自带的一个命令行工具,可以用来生成 Java 进程的堆转储文件(heap dump),这个文件包含了 JVM 堆中所有对象的信息

    # 其中format=b表示输出为二进制格式,file=<output_file_path>指定输出文件的路径及名称,<pid>则是上一步找到的进程ID。
    jmap -dump:format=b,file="D:\Download\heap.prof" <pid>
    

2. 导入内存分析工具


常用的内存分析工具

  • VisualVM:VisualVM 是一个集成的工具,它允许开发者监控和分析Java应用程序的性能,包括内存使用情况、线程活动、编译器统计、垃圾收集行为等。VisualVM 随 JDK 发布一起提供,是一个非常强大的工具,适用于开发环境和生产环境的故障排查。

  • Eclipse Memory Analyzer (MAT):MAT 是一个专门用于分析 Java 应用程序内存消耗的工具。它可以从 JVM 中获取堆转储文件,并提供详细的内存分析报告,包括泄露检测、对象统计等。MAT 是一个独立的工具,可以离线分析堆转储文件。

  • IDEA Profiler:和 VisualVM 工具功能一致,但加载速度相当快,而且不占太多内存

推荐

当内存溢出时,如果-Xmx(最大堆内存大小)之前设置的很大,那么导出的 heap 文件也很大,因此堆内存分析时也会占用很大的内存

  • 如果自己能分析堆内存占用情况,推荐使用 IDEA Profiler(加载快,占用内存小)。
  • 如果需要工具自动分析,并提供泄露检测报告,推荐使用 MAT(加载慢,占用内存特别大,而且卡死过几次)。

JPS命令:https://blog.csdn.net/heihaozi/article/details/123441649


版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com