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. elasticsearch RestHighLevelClient 关于document的常用操作 ---------- 删除篇

    es删除操作大致分为:基于id的单条删除.基于id的批量删除.自定义条件的删除 基于id的单条删除:DeleteRequest 基于id的批量删除:BulkRequest中通过多个DeleteRequ ...

  2. Solon AI + MCP实战:5行代码搞定天气查询,LLM从此告别数据孤岛

    此文参考自:https://www.toutiao.com/article/7505712149642117669/ 一.痛点直击:为什么你的AI模型会"一问三不知"? 当你问 L ...

  3. Rust修仙之道 第二章:气流变换 · 驭控条件与循环之术

    第二章:气流变换 · 驭控条件与循环之术 在掌握变量与法印函数之后,顾行云进入了修炼的下一个瓶颈--如何让灵气术式随境而变.适时而动? 他夜读<Rust·变通篇>,心有所感:"灵 ...

  4. 微信小程序之WXML特性和WXSS特性

    WXML特性之数据绑定 数据绑定 数据绑定属性 运算符绑定 通用属性 WXML特性之列表渲染 block不是组件,只是一个包装元素,不会在界面渲染出来. WXML特性之条件渲染 wx:if : 渲染时 ...

  5. vue打包后文件自定定义命名规则

    js文件和svg以及图片 module.exports = { chainWebpack: config = >{ const svgRule = config.module.rule('svg ...

  6. 前端开发系列032-基础篇之DOM

    本文将详细介绍DOM相关的知识点,包括但不限于Document文档结构.Node节点.Node节点的类型.Node节点的关系以及DOM的基本操作( 节点的获取.节点的创建.节点的插入.节点的克隆和删除 ...

  7. openVolumeMesh example 程序学习

    简介 参考链接 openVolumeMesh 官网链接 https://www.graphics.rwth-aachen.de/software/openvolumemesh/download/ 中国 ...

  8. vue 引用echarts控件进行数据可视化显示

    最近公司在项目的开发中引入echarts,运行时发现有些问题 在使用echarts的时候,下载按钮显示数据不全 代码如下: toolbox: { feature: { saveAsImage: {} ...

  9. API网关如何在iPaaS平台中助企业构建安全高效的API生态体系

    API网关在iPaaS(集成平台即服务)体系中扮演着至关重要的角色,它不仅促进了企业内部系统间的无缝集成,还为构建一个安全.高效且可扩展的API生态系统提供了坚实的基础.通过合理利用API网关的功能特 ...

  10. ETL的数据脱敏方式

    数据脱敏是什么? 数据脱敏是在数据处理过程中采用各种技术手段去除或替换敏感信息,以保障个人隐私和敏感信息的安全措施.通常应用于数据共享.数据分析和软件测试等场景,其目的在于减少数据泄露和滥用的风险. ...