码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • Memory Analyzer分析内存溢出


    一、下载和安装

    访问Eclipse MAT官网,下载适用于你操作系统的最新版本的MAT,并进行安装。

    二、使用

    2.1 导出Heap Dump文件

    2.1.1 使用jmap命令导出Heap Dump文件

    可以在终端或命令提示符中执行以下命令:

    jmap -dump:format=b,file=/path/to/heapdump.hprof 
    
    • 1
    • /path/to/heapdump.hprof是生成Heap Dump文件的路径;
    • 是Java进程的ID;

    2.1.2 使用Java应用程序自带的JMX工具导出Heap Dump文件

    可以通过JMX远程连接到运行中的Java应用程序,然后导出Heap Dump文件。

    2.1.3 在应用程序代码中手动导出Heap Dump文件

    在关键代码位置插入导出Heap Dump的逻辑,例如使用HeapDumper.dumpHeap(String filename, boolean live)方法。

    2.2 打开Heap Dump文件

    启动MAT,选择"File"菜单中的"Open Heap Dump…"选项,然后浏览并选择你导出的Heap Dump文件。

    2.3 分析Heap Dump数据

    MAT会加载Heap Dump文件,并提供一个交互式的界面来分析内存快照数据。你可以在左侧的"Leak Suspects"和"Top Consumers"等视图中查看分析结果,以及在搜索框中输入类、对象、字段等关键字来进行具体的搜索和过滤。

    2.4 诊断和解决问题

    使用MAT的各种分析功能和视图,你可以找到潜在的内存泄漏问题、定位内存占用较高的对象,以及查看对象引用链等信息。根据分析结果,你可以针对性地优化代码和释放不必要的资源,以解决Java应用程序中的内存问题。

    除了上述基本步骤,MAT还提供了许多高级功能和插件,可以进行更深入的内存分析和优化。你可以参考MAT的官方文档和教程,以及在线社区资源,进一步了解和学习如何使用Memory Analyzer。
    【图】

    • Histogram可以列出内存中的对象,对象的个数以及大小;
    • Dominator Tree可以列出那个线程,以及线程下面的那些对象占用的空间;
    • Top consumers通过图形列出最大的object;
    • Leak Suspects通过MA自动分析泄漏的原因;

    三、增大Memory Analyzer内存

    注意:MemoryAnalyzer的MemoryAnalyzer.ini会配置占用空间的最大内存,默认是1024M,而我们生成的堆文件一般都是超过2G的,所以肯定不够用,所以需要将内存改的大一点,我是改成了8G。
    MemoryAnalyzer.ini

    四、拓展

    总结:JVM堆内存调优之MAT

  • 相关阅读:
    Web3D开发者兼职副业平台推荐
    opencv中绘制图像的函数
    [附源码]计算机毕业设计JAVAjsp茶园认养管理平台
    网络层面随笔
    基于Session实现短信登录
    PHP实现微信小程序状态检测(违规、暂停服务、维护中、正在修复)
    最新字节大佬总结出这份Java面试技术栈手册,建议收藏
    【pytest官方文档】解读- 插件开发之hooks 函数(钩子)
    侯捷 C++ STL标准库和泛型编程 —— 9 STL周围
    资深博导:我以为数据预处理是常识,直到遇到自己的学生
  • 原文地址:https://blog.csdn.net/moneywenxue/article/details/132892913
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号