如何在eclipse dump Java内存占用情况和打印GC LOG
package com.memoryLeakAnalysis; import java.util.ArrayList;
import java.util.List; public class MemoryLeakDemo { public static void main(String[] args) { List<String> list = new ArrayList<String>();
while (true) {
list.add("OutOfMemoryError soon");
}
} }
-XX:HeapDumpPath=c:/memoryLeakDemo.hprof
-XX:+PrintGCDetails
-XX:+PrintGCDateStamps
-XX:+PrintGCApplicationConcurrentTime
-XX:+PrintGCApplicationStoppedTime
-Xloggc:c:/memoryLeakDemoGc.log
Eclipse Memory Analyzer(MAT)打开memoryLeakDemo.hprof ,即可看到可疑的内存泄露情况,如下图:
memoryleakDemoGc.log日志:
2013-06-21T18:08:09.518+0800: 0.079: [GC 0.079: [DefNew: 4017K->261K(4928K), 0.0020189 secs] 4017K->1425K(15872K), 0.0020804 secs] [Times: user=0.00 sys=0.00, real=0.01 secs]
Total time for which application threads were stopped: 0.0118427 seconds
Application time: 0.0015514 seconds
2013-06-21T18:08:09.531+0800: 0.092: [GC 0.092: [DefNew: 2095K->0K(4928K), 0.0022178 secs] 3258K->3170K(15872K), 0.0022986 secs] [Times: user=0.00 sys=0.00, real=0.00 secs]
Total time for which application threads were stopped: 0.0023873 seconds
Application time: 0.0021970 seconds
2013-06-21T18:08:09.536+0800: 0.097: [GC 0.097: [DefNew: 2618K->0K(4928K), 0.0027436 secs] 5788K->5788K(15872K), 0.0027797 secs] [Times: user=0.00 sys=0.00, real=0.00 secs]
Total time for which application threads were stopped: 0.0029137 seconds
Application time: 0.0033047 seconds
2013-06-21T18:08:09.542+0800: 0.103: [GC 0.103: [DefNew: 3927K->0K(4928K), 0.0040692 secs]0.107: [Tenured: 9715K->4188K(10944K), 0.0078907 secs] 9715K->4188K(15872K), [Perm : 376K->376K(12288K)], 0.0120529 secs] [Times: user=0.00 sys=0.00, real=0.01 secs]
Total time for which application threads were stopped: 0.0121337 seconds
Application time: 0.0051220 seconds
2013-06-21T18:08:09.559+0800: 0.120: [GC 0.120: [DefNew: 0K->0K(4992K), 0.0019689 secs]0.122: [Tenured: 10078K->6151K(10944K), 0.0086661 secs] 10078K->6151K(15936K), [Perm : 376K->376K(12288K)], 0.0107276 secs] [Times: user=0.00 sys=0.00, real=0.01 secs]
Total time for which application threads were stopped: 0.0108428 seconds
Application time: 0.0088859 seconds
2013-06-21T18:08:09.579+0800: 0.140: [GC 0.140: [DefNew: 0K->0K(4992K), 0.0026499 secs]0.143: [Tenured: 14987K->9097K(19780K), 0.0113583 secs] 14987K->9097K(24772K), [Perm : 376K->376K(12288K)], 0.0141102 secs] [Times: user=0.02 sys=0.00, real=0.01 secs]
Total time for which application threads were stopped: 0.0142300 seconds
Application time: 0.0131855 seconds
2013-06-21T18:08:09.606+0800: 0.167: [GC 0.167: [DefNew: 0K->0K(8960K), 0.0041453 secs]0.172: [Tenured: 22350K->13514K(33036K), 0.0153709 secs] 22350K->13514K(41996K), [Perm : 376K->376K(12288K)], 0.0196298 secs] [Times: user=0.01 sys=0.00, real=0.02 secs]
Total time for which application threads were stopped: 0.0197569 seconds
Application time: 0.0192821 seconds
2013-06-21T18:08:09.646+0800: 0.207: [GC 0.207: [DefNew: 0K->0K(14976K), 0.0057633 secs]0.212: [Tenured: 33395K->20141K(52920K), 0.0206766 secs] 33395K->20141K(67896K), [Perm : 376K->376K(12288K)], 0.0265551 secs] [Times: user=0.03 sys=0.00, real=0.03 secs]
Total time for which application threads were stopped: 0.0266673 seconds
Application time: 0.0289176 seconds
2013-06-21T18:08:09.701+0800: 0.262: [GC 0.262: [DefNew: 0K->0K(23872K), 0.0086104 secs]0.271: [Tenured: 49962K->30081K(52920K), 0.0294036 secs] 49962K->30081K(76792K), [Perm : 376K->376K(12288K)], 0.0380994 secs] [Times: user=0.03 sys=0.00, real=0.04 secs]
Total time for which application threads were stopped: 0.0382799 seconds
Application time: 0.0436154 seconds
2013-06-21T18:08:09.783+0800: 0.344: [GC 0.344: [DefNew: 0K->0K(23872K), 0.0131421 secs]0.357: [Tenured: 74812K->44992K(97652K), 0.0415558 secs] 74812K->44992K(121524K), [Perm : 376K->376K(12288K)], 0.0548393 secs] [Times: user=0.05 sys=0.00, real=0.06 secs]
Total time for which application threads were stopped: 0.0550578 seconds
Application time: 0.0657430 seconds
2013-06-21T18:08:09.904+0800: 0.465: [GC 0.465: [DefNew: 0K->0K(43968K), 0.0198380 secs]0.485: [Tenured: 112088K->67357K(164752K), 0.0608105 secs] 112088K->67357K(208720K), [Perm : 376K->376K(12288K)], 0.0807997 secs] [Times: user=0.08 sys=0.00, real=0.08 secs]
Total time for which application threads were stopped: 0.0809335 seconds
Application time: 0.0991039 seconds
2013-06-21T18:08:10.084+0800: 0.645: [GC 0.645: [DefNew: 0K->0K(74240K), 0.0293317 secs]0.674: [Tenured: 168002K->100905K(174784K), 0.0895410 secs] 168002K->100905K(249024K), [Perm : 376K->376K(12288K)], 0.1189829 secs] [Times: user=0.12 sys=0.00, real=0.12 secs]
2013-06-21T18:08:10.203+0800: 0.764: [Full GC 0.764: [Tenured: 100905K->100892K(174784K), 0.0861601 secs] 100905K->100892K(253440K), [Perm : 376K->371K(12288K)], 0.0862167 secs] [Times: user=0.08 sys=0.00, real=0.09 secs]
Total time for which application threads were stopped: 0.2053870 seconds
Application time: 0.0006161 seconds
Total time for which application threads were stopped: 0.5625090 seconds
Heap
def new generation total 78656K, used 2190K [0x24690000, 0x29be0000, 0x29be0000)
eden space 69952K, 3% used [0x24690000, 0x248b3bd8, 0x28ae0000)
from space 8704K, 0% used [0x28ae0000, 0x28ae0000, 0x29360000)
to space 8704K, 0% used [0x29360000, 0x29360000, 0x29be0000)
tenured generation total 174784K, used 100892K [0x29be0000, 0x34690000, 0x34690000)
the space 174784K, 57% used [0x29be0000, 0x2fe67208, 0x2fe67400, 0x34690000)
compacting perm gen total 12288K, used 371K [0x34690000, 0x35290000, 0x38690000)
the space 12288K, 3% used [0x34690000, 0x346ecf38, 0x346ed000, 0x35290000)
ro space 10240K, 55% used [0x38690000, 0x38c11140, 0x38c11200, 0x39090000)
rw space 12288K, 55% used [0x39090000, 0x397344c8, 0x39734600, 0x39c90000)
Application time: 0.0016332 seconds
如何在eclipse dump Java内存占用情况和打印GC LOG的更多相关文章
- 通过JDK常用工具监控Java进程的内存占用情况
目录 1 JDK 工具的使用 2 查看 GC 日志信息 3 添加 JMS 远程监控 Tomcat是一款常用的Web容器, 它是运行在 JVM(Java Virtual Machine) 中的一个Jav ...
- JVM内存占用情况深入分析
内存分布 首先,列举一下一个JVM进程主要占用内存的一些地方: Young Old metaspace java thread count * Xss other thread count * sta ...
- 阿里云下 centos7下启动程序总是被killed ,看内存占用情况以检查哪些服务存在问题并调整参数作调优
很久不搭理自己的网站了,几天突然发现启动程序总是被killed, 于是查看了系统日志 vi /var/log/messages 发现出现 kernel: Out of memory: Kill pro ...
- [PHP] 循环查看php-fpm的内存占用情况
在webmail的业务中进行发信,如果携带了附件,会把附件拼接内嵌到邮件正文里,这时会极大的占用内存,可以使用以下命令查看fpm的进程内存占用 ps --no-headers --sort -rss ...
- 如何在Windows下查看JAVA端口占用情况(阿里面试)
如需要确定谁占用了9050端口 为例: 1.Windows平台 在windows命令行窗口下执行: 1.查看所有的端口占用情况 C:\>netstat -ano 协议 本地地址 外部地址 状态 ...
- Java内存使用情况查看工具
Java通过jvm自己管理内存,同时Java提供了一些命令行工具,用于查看内存使用情况.这里主要介绍一下jstat.jmap命令以及相关工具. 一.jstat查看 gc实时执行情况 jstat命令命令 ...
- Linux 带宽、CPU、内存占用情况
iftop 查看带宽占用情况(总)yum install -y iftop 安装iftopnethogs 查看进程流量 curl http://218.5.73.233:8060/ip.php 查看出 ...
- Android使用procrank和dumpsys meminfo 、top分析内存占用情况
如果你想查看所有进程的内存使用情况,可以使用命令procrank.dumpsys meminfo查看,当然也只可以过滤出某个进程如:dumpsys meminfo | grep -i phone 先来 ...
- 查看LINUX进程内存占用情况
可以直接使用top命令后,查看%MEM的内容.可以选择按进程查看或者按用户查看,如想查看oracle用户的进程内存使用情况的话可以使用如下的命令: (1)top top命令是Linux下常用的性能分析 ...
随机推荐
- tomcat启动后ids页面无法访问
修改servers-->tomcat6.0-->server.xml <Context docBase="/tds7030-web" path="&qu ...
- java--线程状态
1.新建状态 Thread t1 = new Thread(); 创建之后,就已经有了相应的内存和其他资源,但是还是处于不可运行状态. 2.就绪状态 当一个线程使用.start()启动之后就处于就绪状 ...
- GitLab 之 Linux十分钟快装
原文链接:http://www.cnblogs.com/highsea90/p/5191340.html 先把 Shell 命令贴出来,楼主以 CentOS release 6.5 (Final) 6 ...
- 一步一步重写 CodeIgniter 框架 (1) —— url 如何映射到具体的方法
CodeIgniter 框架最显著的特征就是 MVC 模式,它的做法就是提取 url 中的'分段', 映射到某个类的某个方法,从而由该方法来输出最终显示的页面内容.那么我们第一课中就是实现一个这样的原 ...
- Cocos2dx系列笔记7:一个简单的跑酷游戏《萝莉快跑》的消化(附下载)
懒骨头(http://blog.csdn.com/iamlazybone) 或许有天 我们羡慕和崇拜的人 因为我们的努力 也会来了解我们 说不定 还会成为好友 骨头喜欢这样与哲哲共勉 多少个夜晚 一张 ...
- Swift - 通过设置视图的transform属性实现动画
设置视图对象的transform属性,可以实现各种动画效果. 1,移动 指在同一平面内,将控件按照某个直线方向平移一定的距离. 1 2 3 4 5 //每次都从当前位置平移 self.imageVie ...
- EasyUI - pagination 分页组件
总页数是手动填写,后续进行更改……………… 效果: html代码: <!--使用标签创建--> <%--<div id="pp" class="e ...
- PL/SQL(二):变量
变量 标识符定义 PL/SQL程序设计中的标识符定义与SQL的标识符定义的要求相同.要求和限制有: 个字符. )首字符必须为字母. )不区分大小写. )不能使用SQL保留字. )对标识符的命名最好遵循 ...
- Qt图片显示效率的比较 转
转http://blog.sina.com.cn/s/blog_5c70dfc80100r257.html 在Qt中处理图片一般都要用到QImage类,但是QImage的对象不能够直接显示出来,要想能 ...
- QT对话框中show和exec的区别
转自:http://hi.baidu.com/wangjuns8/blog/item/24b382460dd1c1338694737d.html QDialog的显示有两个函数show()和exec( ...