简单记录下java用MemoryAnalyzer分析内存泄漏问题!

首先,内存不足的时候,会报错 Exception in thread "main" java.lang.OutOfMemoryError: GC overhead limit exceeded类似的错误!

这时候会生成java_pid3708.hprof类似的文件,这个文件就是MemoryAnalyzer需要分析的文件!

写个例子,快速生成这个文件!

1 public classTestMain {2

3 public static voidmain(String[] args) {4

5 List ary =new ArrayList();6 while(true){7 ary.add(newTestMain());8 }9

10 }11

12 }

运行配置:

等一会就会出现如下

java.lang.OutOfMemoryError: GC overhead limit exceeded

Dumping heap to java_pid10996.hprof ...

Heap dump file created [780500156 bytes in 3.037 secs]

Exception in thread "main"java.lang.OutOfMemoryError: GC overhead limit exceeded

。。。。。

此时去工程根目录下查找*.hprof的文件

下载 MemoryAnalyzer-1.8.1.20180910-win32.win32.x86_64.zip  地址:

当然,根据你的环境不同自行选择版本!

下载后直接解压,发现 MemoryAnalyzer.exe 和 MemoryAnalyzer.ini

直接运行MemoryAnalyzer.exe载入hprof文件!至于如何分析,自己慢慢学吧,我这里仅做记录!

出问题看这里:应该就是mat的运行内存不够,hprof太大造成的

为了更有效率的使用 MAT,我们可以配置一些环境参数。因为通常而言,分析一个堆转储文件需要消耗很多的堆空间,为了保证分析的效率和性能,在有条件的情况下,我们会建议分配给 MAT 尽可能多的内存资源。你可以采用如下两种方式来分配内存更多的内存资源给 MAT。

一种是修改启动参数 MemoryAnalyzer.exe-vmargs -Xmx4g

另一种是编辑文件 MemoryAnalyzer.ini,在里面添加类似信息 -vmargs– Xmx4g。

说明:

1. MemoryAnalyzer.ini中的参数一般默认为-vmargs– Xmx1024m,这就够用了。假如你机器的内存不大,改大该参数的值,会导致MemoryAnalyzer启动时,报错:Failed to create the Java Virtual Machine。

2.当你导出的dump文件的大小大于你配置的1024m(说明1中,提到的配置:-vmargs– Xmx1024m),MAT输出分析报告的时候,会报错:An internal error occurred during: "Parsing heap dump from XXX”。适当调大说明1中的参数即可。

java Analyzer_eclipse java MemoryAnalyzer 查询内存泄漏 环境配置相关推荐

  1. 监视和检测Java应用程序中的内存泄漏

    因此,您的应用程序内存不足,您日夜不停地分析应用程序,以期捕获对象中的内存漏洞. 后续步骤将说明如何监视和检测您的内存泄漏,以确保您的应用程序安全. 1.怀疑内存泄漏 如果您怀疑有内存泄漏,可以使用一 ...

  2. Java应用程序中的内存泄漏和内存管理

    Java平台最突出的功能之一是其自动内存管理. 许多人错误地将此功能转换为Java中没有内存泄漏 . 但是,事实并非如此,我给人的印象是,现代Java框架和基于Java的平台,尤其是Android平台 ...

  3. java 系统工具类 查询内存 CPU 系统基本信息 SysInfoUtils

    java 系统工具类 查询内存 CPU 系统基本信息 SysInfoUtils maven依赖 <dependency><groupId>com.github.oshi< ...

  4. Java开发者必须知道的内存泄漏问题

    点击上方蓝色"程序猿DD",选择"设为星标" 回复"资源"获取独家整理的学习资料! 1. 简介 Java的核心优势之一是在内置垃圾收集器(简 ...

  5. Java动态编译优化——URLClassLoader 内存泄漏问题解决

    一.动态编译案例 要说动态编译内存泄漏,首先我们先看一个案例(网上搜动态编译的资料是千篇一律,只管实现功能,不管内存泄漏,并且都恬不知耻的标识为原创!!) Java  URLClassLoader 动 ...

  6. 【Java面试题】之内存泄漏

    本文转载自:http://blog.csdn.net/anxpp/article/details/51325838 Java的一个重要特性就是通过垃圾收集器(GC)自动管理内存的回收,而不需要程序员自 ...

  7. java dwr 漏洞_Java DWR内存泄漏问题解决方案

    机器跑了一晚上,发现有崩溃现象,由于页面内有动态绘图功能,我怀疑是绘图原因,但是今天上午有人提醒我才想到,是不是间隔调用时DWR产生了内存泄漏问题? 网上查了一下貌似大家都在讨论这个问题,之前我也挺老 ...

  8. Java 小白入门第一弹 安装与环境配置,开发工具的下载

    python和java的异同 1.这两者都是开源语言,换言之你可以随意的使用这两门语言而不需要付费,可以阅读他们的源代码学习,并且对它们做一些改动.在这一点上,两者是不分上下的,唯一的差别可能就是Ja ...

  9. java 打包xml脚本_springboot打包不同环境配置与shell脚本部署

    本篇和大家分享的是springboot打包并结合shell脚本命令部署,重点在分享一个shell程序启动工具,希望能便利工作: profiles指定不同环境的配置 maven-assembly-plu ...

最新文章

  1. 【面试题】使用 HashMap 还是 TreeMap
  2. 订单可视化(智能制造、流程再造、企业信息化) 第五篇 团队建设
  3. Java追加写json_java – ObjectMapper追加文件JSON
  4. AM2320 温湿度计 单总线读取数据
  5. php数组操作集锦- 掌握了数组操作, 也就掌握了php
  6. 前端学习(1509):单页应用SPA特点
  7. stat函数_数据分析工具入门 掌握这些Excel函数就够了
  8. myisam为什么比innodb查询快_mysql存储引擎之MyISAM 和 InnoDB的比较
  9. [Everyday Mathematics]20150226
  10. 一个很有趣的游戏(看谁的名字打架厉害)
  11. 加密卡华为怎么模拟_华为手机NFC模拟加密的门禁卡详细教程
  12. arduino 步进电机驱动库_arduino中驱动 步进电机
  13. android art模式 开启,如何开启androidART模式
  14. [TJOI2019]唱、跳、rap和篮球——NTT+生成函数+容斥
  15. Nofollow标签的写法以及运用
  16. 前端多线程之Worker
  17. 雷神simplest_ffmpeg_player解析(二)
  18. vivado查看内部资源占用情况
  19. Excel 一些操作记录,方便自己查
  20. 文献阅读-融合注意力机制的 IETM 细粒度跨模态检索算法

热门文章

  1. 单品购买商城源码/单个商品详情页购买源码下载
  2. django admin 账户 输入汉字会报错 'ascii' codec can't encode character u'\u4eba' in position 0: ordinal not i
  3. 解析html xml最好的模块,解析--import--htmllib--xml
  4. python tts 保存wav_C#文本转语音并保存wav和MP3文件
  5. 【内网—权限提升】——linux本地提权_脏牛漏洞提权
  6. Instagram是什么,如何通过社交群推王Instagram群控系统获取商机
  7. Java实现第八届蓝桥杯兴趣小组
  8. linux内核入口函数start_kernal
  9. Mifare Classic漏洞原理之一
  10. 暗夜精灵5安装Manjaro 18.1.0 Juhraya