Java程序内存分析:JMap与Eclipse Memory Analyzer - COD...
来源:百度文库 编辑:神马文学网 时间:2024/10/03 04:07:56
Java程序内存分析:JMap与Eclipse Memory Analyzer
当程序中内存使用过多,或者存在内存泄露时,经常会报OutOfMemory错误。很多时候,尤其是在生产环境中,不得不马上重启服务,导致现场丢失,无法查找问题所在。
其实jdk中自带了很多分析监控工具,jmap就是其中之一。
当程序出现问题,先不要停止服务,先用ps看一下java的pid, 然后运行命令将内存导出来:
[Copy to clipboard]View Code BASH
/usr/local/jdk1.6.0_20/bin/jmap -dump:format=b,file=/dir/heap.bin
这个heap.bin就是当前内存中的内容。如果很大,可以用gzip压缩一下。
此时就有很多工具来分析heap.bin了,我使用的是eclipse memory analyzer 。具体使用方法比较简单,里面可以看到每个对象的占用情况。
上两个我的程序出问题时的截图:
通过这两个图,很容易就定位出了Cache里的filter变量有问题。
我的实践中,改进之后,内存占用从1G下降到了60多M。
当程序中内存使用过多,或者存在内存泄露时,经常会报OutOfMemory错误。很多时候,尤其是在生产环境中,不得不马上重启服务,导致现场丢失,无法查找问题所在。
其实jdk中自带了很多分析监控工具,jmap就是其中之一。
当程序出现问题,先不要停止服务,先用ps看一下java的pid, 然后运行命令将内存导出来:
[Copy to clipboard]View Code BASH
/usr/local/jdk1.6.0_20/bin/jmap -dump:format=b,file=/dir/heap.bin
这个heap.bin就是当前内存中的内容。如果很大,可以用gzip压缩一下。
此时就有很多工具来分析heap.bin了,我使用的是eclipse memory analyzer 。具体使用方法比较简单,里面可以看到每个对象的占用情况。
上两个我的程序出问题时的截图:
通过这两个图,很容易就定位出了Cache里的filter变量有问题。
我的实践中,改进之后,内存占用从1G下降到了60多M。
Java程序内存分析:JMap与Eclipse Memory Analyzer - COD...
Eclipse的内存优化与内存不足问题
在 Eclipse 中运行带参数的 Java 程序
JAVA Memory Concept
JAVA 写的日历程序 - JAVA代码分析 - CSDNBlog
存储内存 程序内存
Memory内存种类大全与简介——EAW电子设计应用
eclipse内存配置
Eclipse内存溢出
Eclipse开发J2ME程序之安装配置-Java频道-中国IT实验室
洞悉 Java 应用性能瓶颈的利器:Visual Performance Analyzer
Java 理论与实践: 用弱引用堵住内存泄漏
Java内存模型详解
java内存泄露
分享Java快乐 -ECLIPSE+HIBERNATE;eclipse+ejb
财务分析的程序与步骤
C Memory Scavenger(C、C++内存检测、收集工具)
使用Memory Fox处理Firefox占用大量内存的情况
[转]IDL: Unable to allocate memory 内存问题_IDL:In...
【Java 基础专题】编码与乱码(01)---编码基础 - Java - 拼吾爱程序人生 ...
Matrix - 与 Java 共舞 - 教程-在Eclipse中使用Hibernate
Matrix - 与 Java 共舞 - 教程-在Eclipse中使用Hibernate
Java 程序编码规范
Java内存分配原理解析