版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
Java垃圾回收机制
与dump文件的分析Agenda一.内存的分配和垃圾回收二.GC日志的分析与Javadump文件的分析
三.总结一.内存的分配与垃圾回收1.为什么要对内存进行管理
MemoryisperformaceStackandHeap
Stack:栈,FIFO。
优点:存取速度比Heap要快,栈数据可以共享。
缺点:数据大小与生存期必须是确定的,缺乏灵活性。
Heap:堆。运行时数据区
优点:动态地分配内存大小,生存期也不必事先告诉编译器,
缺点:比Stack慢。一.内存的分配与垃圾回收2.JVM对内存的管理Java不需要程序员自己去管理内存的分配
Useruser=newUser();GC,JVM内存管理中最重要的内容JVM自动GC,因此Java中不存在内存泄露?一.内存的分配与垃圾回收3.GC:GarbageCollection1)什么样的内容可以回收:标记死亡的对象2)如何回收:垃圾收集器的工作方式
一.内存的分配与垃圾回收3.GC:GarbageCollection1)标记死亡的对象
一.内存的分配与垃圾回收3.GC:GarbageCollection1)标记死亡的对象
一.内存的分配与垃圾回收3.GC:GarbageCollection1)标记死亡的对象
一.内存的分配与垃圾回收3.GC:GarbageCollection2)如何回收:垃圾收集器的工作方式ReferenceCountingCollectorMark-SweepCollectorMark-compactCollectorCopyingCollectorGenerationalCollector
一.内存的分配与垃圾回收ReferenceCountingCollector优点:简单缺点:速度非常慢。从未有JVM真正实现过。
一.内存的分配与垃圾回收Mark-SweepCollector早期的JVM使用优点:简单缺点:产生很多内存碎片,分配新Object越来越慢
一.内存的分配与垃圾回收Mark-CompactCollectorJVM扫描Heap两遍优点:解决内存碎片的问题缺点:做垃圾回收时速度比较慢
一.内存的分配与垃圾回收CopyingCollector保存一半内存,只在一半内存中分配对象优点:只需扫描一次Heap缺点:消耗的内存比较大
一.内存的分配与垃圾回收GenerationalCollector按照一个Object经历的垃圾回收次数计算其年龄80%的Object在很早的时期就已经死掉将Heap分段,区分年轻的和年老的区段在不同的区段使用不同的垃圾回收策略
一.内存的分配与垃圾回收GenerationalCollector
一.内存的分配与垃圾回收GenerationalCollectorMinorGC:只做YoungGeneration局部的GCMajorGC:做整个Heap的GC
但是……假设经常性出现了内存溢出我们应该怎么办?????
二、GC日志的分析与Javadump文件的分析1.保持镇定,重启应用,观察JVM的运行状态2.分析可能出现内存溢出的原因
1.监控JVM的运行状态:JConsoleafterSunJDK1.5+在JDK中增加参数,翻开JMX:-Dcom.sun.management.jmxremote.port=1099-Dcom.sun.management.jmxremote.authenticate=false-Dcom.sun.management.jmxremote.ssl=false我们也可以自己写代码,使Jconsole也能监控我们的应用
二.GC日志的分析
与Javadump文件的分析1
.监控JVM的运行状态:JConsole
二.GC日志的分析
与Javadump文件的分析Jconsole实际例子Jconsole控制台MBean
二.GC日志的分析
与Javadump文件的分析2.分析内存溢出可能的原因1).JVM本身的GC和内存分配策略不合理
2).应用本身存在内存泄露
二.GC日志的分析
与Javadump文件的分析1).JVM本身的GC和内存分配策略不合理使用JVM参数翻开GC的详细日志: SunJDK:-verbose:gc-Xloggc:/home/yaonengjun/gc.logIBMJDK:-Xverbosegc:file=filename分析产生的GC日志:
例子gc.log
二.GC日志的分析
与Javadump文件的分析1).JVM本身的GC和内存分配策略不合理
图形化的GC日志分析器
GCViewer:
PMAT例子
二.GC日志的分析
与Javadump文件的分析
2).应用本身存在内存泄露
使用JVM参数,在内存泄露时生成dump文件-XX:+HeapDumpOnOutOfMemoryErrordump文件:
内存数据在硬盘上的映像
二.GC日志的分析
与Javadump文件的分析
2).应用本身存在内存泄露:dump文件分析◆jmap/jhat:●JDK自带的命令行工具Jmap:生成应用的dump文件Jhat:对dump文件进行分析
●相当费内存,使用内存大约在要分析的dump文件的1.5–2倍jhat使用例如
二.GC日志的分析
与Javadump文件的分析
2).应用本身存在内存泄露:dump文件分析◆SAP:MemeoryAnalyzer●免费●图形化的分析工具●消耗内存小●会创立dump文件的索引,需要硬盘空间较大〔dump文件的2-3倍〕MAT使用例如
二.GC日志的分析
与Javadump文件的分析
●在大多数情况下,内存溢出都是和应用相关的。因此,想要知道内存溢出的根源,最好是对应用的源代码比较熟悉。友情提示:●分析内存溢出时,通常会非常消耗系统资源,需要事先找好配置比较高的机器
三.总结 1、Java的内
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 孕妇饮食均衡与胎儿健康成长的关联探讨
- 小学科学教育中的国际视野与文化交流
- 教育科技创新与孵化器发展路径
- 2025年度货架供应与安装服务合同3篇
- 教育信息化时代的小学数学文化教育
- 数学文化在小学教育中的实施效果评估
- 学校实验室管理与教学相结合的策略与实践
- 2025年拓展训练合同范本大全:青少年户外拓展夏令营3篇
- 第二单元第6节 指令的复用 说课稿-2023-2024学年粤教清华版初中信息技术七年级下册
- 7 生命最宝贵(说课稿)统编版道德与法治三年级上册
- 2024-2025学年成都高新区七上数学期末考试试卷【含答案】
- 定额〔2025〕1号文-关于发布2018版电力建设工程概预算定额2024年度价格水平调整的通知
- 2025年浙江杭州市西湖区专职社区招聘85人历年高频重点提升(共500题)附带答案详解
- 《数学广角-优化》说课稿-2024-2025学年四年级上册数学人教版
- “懂你”(原题+解题+范文+话题+技巧+阅读类素材)-2025年中考语文一轮复习之写作
- 2025年景观照明项目可行性分析报告
- 2025年江苏南京地铁集团招聘笔试参考题库含答案解析
- 2025年度爱读书学长参与的读书项目投资合同
- 电力系统分析答案(吴俊勇)(已修订)
- 化学-河北省金太阳质检联盟2024-2025学年高三上学期12月第三次联考试题和答案
- 期末复习试题(试题)-2024-2025学年四年级上册数学 北师大版
评论
0/150
提交评论