https://www.cnblogs.com/M-MAKI/p/17085360.html

分析简述

创建dump文件;通过 !address -summary 和 !eeheap -gc 判断是否为内存泄漏;通过!dumpheap -stat观察出问题的类型;通过!dumpheap -mt MT号 -min xxx 来索引该类型下占用较高的数据;

再通过!gcroot GC根来查看该根被哪些所引用;

1.创建dump的方式可以在任务管理器中,在对应的进程下右击,选择创建转储文件

2.打开Windbg程序,选择Open Source File,选择刚刚的dump文件

3.在命令行输入!dumpheap -stat,可以查看当前所有托管类型的统计信息,包括它们的内存占用情况

4.从上图可以看到String和XML是占用内存最大的两个类型,我们接着使用!dumpheap -mt 00007ffaa50cd698 -min 300    命令检索对应MT中300byte以上的string

5.可以看出没有特别占用内存的string存在,但可以看看每个string下具体都存储的什么字符串

使用!do 000001b45c201080,即!do GC根,可使用!gcroot GC根查看该变量的引用情况,而如果gcroot出来没有引用根,即Found 0 unique roots (run '!GCRoot -all' to see all roots).则考虑是否是因为死线程的原因造成的。

参考文献:

https://blog.csdn.net/mzl87/article/details/127670331

https://blog.csdn.net/xdpcxq/article/details/128219304

https://blog.csdn.net/biyusr/article/details/125904480

Windbg下使用dump分析内存溢出的更多相关文章

  1. Java常见问题分析(内存溢出、内存泄露、线程阻塞等)

    Java垃圾回收机制(GC) 1.1 GC机制作用 1.2 堆内存3代分布(年轻代.老年代.持久代) 1.3 GC分类 1.4 GC过程 Java应用内存问题分析 2.1 Java内存划分 2.2 J ...

  2. JVM探秘:MAT分析内存溢出

    本系列笔记主要基于<深入理解Java虚拟机:JVM高级特性与最佳实践 第2版>,是这本书的读书笔记. MAT是分析Java堆内存的一个工具,全称是 The Eclipse Memory A ...

  3. Eclipse MAT和jvisualvm分析内存溢出

    ---------------------------------------------mac os版------------------------------------------------ ...

  4. 【高并发】高并发环境下如何防止Tomcat内存溢出?看完我懂了!!

    写在前面 随着系统并发量越来越高,Tomcat所占用的内存就会越来越大,如果对Tomcat的内存管理不当,则可能会引发Tomcat内存溢出的问题,那么,如何防止Tomcat内存溢出呢?我们今天就来一起 ...

  5. linux服务器下tomcat部署项目内存溢出

    今天将一个项目部署到linux服务器上,结果tomcat在启动运行到一定时间后就报错.根据以往的经验,查了一些资料,终于解决了该问题并顺便解决了生产环境中的get方式中文传递乱码问题. tomcat启 ...

  6. 【Itext】解决Itext5大并发大数据量下输出PDF发生内存溢出outofmemery异常

    尼玛,这个问题干扰了我两个星期!! 关键字 itext5 outofmemery 内存溢出 大数据 高并发 多线程 pdf 导出 报表 itext 并发 在读<<iText in Acti ...

  7. WinDbg 蓝屏dump分析教程

    一.WinDbg是什么?它能做什么? WinDbg是在windows平台下,强大的用户态和内核态调试工具.它能够通过dmp文件轻松的定位到问题根源,可用于分析蓝屏.程序崩溃(IE崩溃)原因,是我们日常 ...

  8. JVM内存溢出分析java.lang.OutOfMemoryError: Java heap space

    JVM内存溢出查询java.lang.OutOfMemoryError: Java heap space查出具体原因分为几个预备步骤 1.在运行java程序是必须设置jvm -XX:+HeapDump ...

  9. 记一次内存溢出的分析经历——thrift带给我的痛orz

    说在前面的话 朋友,你经历过部署好的服务突然内存溢出吗? 你经历过没有看过Java虚拟机,来解决内存溢出的痛苦吗? 你经历过一个BUG,百思不得其解,头发一根一根脱落的烦恼吗? 我知道,你有过! 但是 ...

  10. 记一次内存溢出的分析经历——使用thrift

    背景: 有一个项目做一个系统,分客户端和服务端,客户端用c++写的,用来收集信息然后传给服务端(客户端的数量还是比较多的,正常的有几千个), 服务端用Java写的(带管理页面),属于RPC模式,中间的 ...

随机推荐

  1. ChatMoney能根据剪纸来进行AI绘画,你见过吗?

    本文由 ChatMoney团队出品 剪纸,听起来就很有画面感,承载着中国几千年的文化.一把剪刀.一张红纸,轻轻剪几剪,就能幻化出各种栩栩如生的图案.这门艺术不仅仅是视觉上的享受,更是一种感情的传递,一 ...

  2. CRM AET增强字段太多导致表字段长度超长 NOTE 1392239

  3. 重磅预告 | 开源家族又添新成员!12月16日Molecule在Github、Gitee等你

    ​ 随着全球开源生态的持续性发展,开源项目数量呈现指数级的增长,并逐渐覆盖全栈技术领域.袋鼠云数栈技术开源团队一直秉承着"源于开源 回馈开源"的理念,坚持以技术为核心,开源开放.不 ...

  4. FastAPI日志审计:你的权限系统是否真的安全无虞?

    title: FastAPI日志审计:你的权限系统是否真的安全无虞? date: 2025/06/20 16:21:09 updated: 2025/06/20 16:21:09 author: cm ...

  5. ATM2.0模块版

    ATM项目开发 (1)在主程序文件中创建程序入口 (2)在核心代码文件(视图层)搭建程序框架 (3)进行代码功能分配 - ATM 项目根目录 - README.md 项目说明书 - start.py ...

  6. HyperWorks分析模型的建立与边界条件施加

    在HyperWorks完成了基本的网格剖分后,还需要赋予模型各类与求解相关的信息,方能最终生成可以递交求解器计算的输入文件.分析模型的建立与载荷及边界条件的创建包括以下内容: -定义待输出的目标求解器 ...

  7. 实战绕过某waf后缀检测内容检测

    本次测试为授权测试. 0x01 背景 弱口令进入某后台,存在任意文件上传,存在waf 测试aa后缀成功上传通过查看派单可以看到文件路径 直接上传aspx被拦截 0x02 绕过后缀名检测 先简单尝试大小 ...

  8. 在.Net Core类库中引入System.Windows.Forms,报错问题

    https://blog.rayfalling.com/2020/04/%e5%9c%a8-net-core%e4%b8%ad%e5%bc%95%e5%85%a5system-windows-form ...

  9. useSignal

    背景 我要监听一个视频播放当前进度时间,并把显示到页面上. 使用传统state function DemoOne() { const [currentTime, setCurrentTime] = u ...

  10. Genymotion虚拟机启动时get no IP address的解决方法汇总

    "Genymotion虚拟机启动时get no IP address"这个问题一直困扰了我很多天,我在网上也试了不少方法,今天终于成功打开了,太兴奋了. 鉴于网上各种方法比较分散, ...