对java系统内存泄漏的研究

对java系统内存泄漏的研究

ID:34158170

大小:268.12 KB

页数:9页

时间:2019-03-04

对java系统内存泄漏的研究_第1页
对java系统内存泄漏的研究_第2页
对java系统内存泄漏的研究_第3页
对java系统内存泄漏的研究_第4页
对java系统内存泄漏的研究_第5页
资源描述:

《对java系统内存泄漏的研究》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、对Java系统内存泄漏的研究一、摘要2二、关键词2引言四、止文1.Java内存回收机制1.1JVM堆组成1.2垃圾回收的过程2.Java内存泄漏原因和分类52.1Jvm内存泄漏52.2c-heap内存泄漏53.内存泄漏的诊断63.1常用的诊断工具63.2案例9五、参考文献摘要在Java语言被广泛运营于电信营业系统的开发的背景下,Java系统的稳定性和可用性越来越受到人们的关注。Jav“的内存溢出的问题,是所有java系统所有问题中最常见、最普遍存在的系统问题,也困扰了很多系统维护工作者。Java内存

2、问题,种类有很多,症状也很不一样。原因是非常多的,在实际情况中比较复杂。尽管java虚拟机和垃圾回收机制管理着大部分的内存事务,但是在java软件中述是可能存在内存泄漏的情况。本文作者利用在实际工作中的经验,结合电信系统运营情况和硬件环境,对Java内存泄漏的问题做了一定的技术研究。本文将描述Java系统内存问题的各种症状,分析过程和解决办法。希望能和读者共同探讨Java的内存泄漏问题,也希望给读者带來一些启发和帮助。二、关键词Java内存,泄漏,OutOfMemoryQOM三、引言从…试点开始,总

3、是陆陆续续会碰到Java系统内存上的问题。因为都是崭新的系统,总有会遇到不少的新疑难问题。有一些内存问题,是调整参数就可以解决的,而有一些则是产品本身的Bug和开发的程序上的原因,只有后者我们才可诊断为内存泄漏。区分内存问题到底是不是内存泄漏引起,是如何引起的,成为Java内存泄漏问题研究的焦点,也是Java系统维护Troubleshooting工作的重点之一。本文将先从Java内存结构开始,介绍内存工作原理和垃圾冋收机制。列举内存泄漏的种类,以及在实际工作中我们用到的分析内存泄漏的工具和案例说明。

4、课题的研究成果在于,从阐述Java结构出发出发,说明的Java的内存原理,研究了内存泄漏的原因,种类和分析方法。总结了以往的实际工作经验,为今后进一步的探讨研究,提供了科学理论依据,为..项目今后的系统维护工作给予技术支持。四、正文1-Java内存回收机制我们都知道,Java程序的并不是直接运行在操作系统上的,程序和操作系统Z间,嵌套着J“va的虚拟机。Java虚拟机的运用,使得java能有更好的移植功能。在这里我所需要探讨的正是Java虚拟机的内存机制。1.1JVM堆组成JVM虚拟机堆中的共划分为

5、三个代:年轻代(YoungGeneration)>年老代(OldGeneration)和持久代(PermanentGeneration)o其中持久代主要存放的是Java类的类信息,与垃圾收集要收集的Java对象关系不大。年轻代和年老代的划分是对垃圾收集影响比较大的。图1JVM内存结构1)年轻代:所有新生成的对象首先都是放在年轻代的。年轻代的目标就是尽可能快速的收集掉那些生命周期短的对象。年轻代分三个区。一个EdenIX,两个Survivor1X(-般而言)。大部分对象在Eden区中生成。当Eden区

6、满时,还存活的对彖将被复制到Survivor区(两个中的一个),当这个Sui-vivor区满时,此区的存活对彖将被复制到另外一个Survivor区,当这个Survivor去也满了的吋候,从第一个Survivor区复制过来的并且此吋还存活的对象,将被复制“年老区(Tenured)需要注意,Survivor的两个区是对称的,没先后关系,所以同一个区中对能同时存在从Eden复制过来对象,和从前一个Survivor复制过来的对象,而复制到年老区的只有从第一个Survivor去过来的对象。而且,Survivo

7、r区总有一个是空的。同时,根据程序需要,Survivor区是可以配置为多个的(多于两个),这样可以增加对象在年轻代中的存在时间,减少被放到年老代的可能。2)年老代:在年轻代中经历了N次垃圾回收后仍然存活的对象,就会被放到年老代中。因此,可以认为年老代中存放的都是一些生命周期较长的对象。3)持久代:用于存放静态文件,如今Java类、方法等。持久代对垃圾回收没有显着影响,但是有些应用可能动态生成或者调用一些class,例如Hibernate等,在这种时候需要设置一个比较大的久代空间来存放这些运行过程中新

8、增的类。持久代大小通过-XX:MaxPermSize=进行设置。1.2垃圾回收的过程由于对象进行了分代处理,因此垃圾回收区域、时I'可也不一样。GC有两种类型:ScavengeGC和FullGC。QlnitObjAllocSurvivorRatioEdenSpaceFromSpaceToSpaceYoungGenerationTenuredSpaceOldGenerationPermanentSpacePermanentGeneration图2GC垃圾回收过程1.2.

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。