知识大全 全面认识JVM垃圾回收机制

Posted

篇首语:书到用时方恨少,事非经过不知难。本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识大全 全面认识JVM垃圾回收机制相关的知识,希望对你有一定的参考价值。

全面认识JVM垃圾回收机制  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!

    这里向大家简单介绍一下JVM垃圾回收的相关知识 JVM使用的是分代垃圾回收的方式 可以将Java对象分为 年轻 对象和 年老 对象 JVM将内存堆(Heap)分为两个区域 一个是 年轻 区 另一个是 老 区 Java将这两个区域分别称作是 新生代 和 老生代         JVM垃圾回收的相关知识        JVM使用的是分代垃圾回收的方式 主要是因为在程序运行的时候会有如下特点         ◆大多数对象在创建后很快就没有对象使用它了         ◆大多数在一直被使用的对象很少再去引用新创建的对象         因此就将Java对象分为 年轻 对象和 年老 对象 JVM将内存堆(Heap)分为两个区域 一个是 年轻 区 另一个是 老 区 Java将这两个区域分别称作是 新生代 和 老生代         新生代 区域中 绝大多数新创建的对象都存放在这个区域里 此区域一般来说较小而且JVM垃圾回收频率较高 同时因为 新生代 采用的算法和其存放的对象的特点 使该区域JVM垃圾回收的效率也非常高         而 老生代 区域中存放的是在 新生代 中生存了较长时间的对象 这些对象将被转移到 老生代 区 这个区域一般要大一些而且增长的速度相对于 新生代 要慢一些 老生代 JVM垃圾回收的执行频率也会低很多         由于JVM在JVM垃圾回收处理时会消耗一定的系统资源 因此有时候通过JVM启动的时候添加相关参数来控制 新生代 区域的大小 来调整JVM垃圾回收处理的频率非常有用 以便于我们更合理的利用系统资源         新生代 区域设置参数是 Xmn 用这个参数可以制定 新生代 区域的大小         我们来举一个例子说明         我们就用系统自带的程序作为例子 在命令行上键入如下指令         CDC:\\java\\demo\\jfc\\SwingSet [回车]C:\\java\\demo\\jfc\\SwingSet >        java jar verbose:gc Xmn mXX:+PrintGCDetailsSwingSet jar[回车]        上面加入了一个新的参数 XX:+PrintGCDetails 这个参数能够打印出GC的详细信息 屏幕输出如下(节选)         [GC[DefNew: K > K( K) secs] K >        K( K) secs][GC[DefNew: K >        K( K) secs] K >        K( K) secs][GC[DefNew: K >        K( K) secs] K >        K( K) secs][GC[DefNew: K >        K( K) secs] K >        K( K) secs]        我们需要解释一下输出的详细内容的意思 拿第一行输出来说         DefNew: K > K( K) secs 是指 新生代 的JVM垃圾回收情况 这里的意思是从占用 K内存空间变为 K内存空间 用时 秒         K > K( K) secs 是指总体GC的回收情况 整体堆空间占用从 K降低到 K的水平 用时 秒         那么 这时候我们在将 新生代 的内存设为 M 并把堆的最大可控值设定为 M 再去执行 键入如下指令         java jar verbose:gc Xmn m Xmx mXX:+PrintGCDetailsSwingSet jar[回车]        得到的结果如下(节选)         [GC[DefNew: K > K( K) secs]        [Tenured: K > K( K) secs] K >        K( K) secs][GC[DefNew: K >        K( K) secs][Tenured: K >        K( K) secs] K >        K( K) secs][GC[DefNew: K >        K( K) secs][Tenured: K >        K( K) secs] K >        K( K) secs]        这个结果说明         [DefNew: K > K( K) secs] 是指 新生代 的JVM垃圾回收情况 这里的意思是从占用 K内存空间变为 K内存空间 用时 秒         K > K( K) secs 是指总体GC的回收情况 整体堆空间占用从 K降低到 K的水平 用时 秒         [Tenured: K > K( K) secs] 是指 老生代 GC的回收情况 整体堆空间占用从 K降低到 K的水平 用时 秒         通过这些参数的调整我们可以看到在处理垃圾收集问题时 从JVM垃圾回收的频率是时间方面的变化 我们可以根据不同程序的不同情况予以调整         最后有必要提一下GC的相关参数         XX:+PrintGCDetails显示GC的详细信息        XX:+PrintGCApplicationConcurrentTime打印应用执行的时间        XX:+PrintGCApplicationStoppedTime打印应用被暂停的时间        注 : 后的 + 号表示开启此选项 如果是 号那么表示关闭此选项 cha138/Article/program/Java/hx/201311/25648

相关参考

知识大全 Java的垃圾回收机制详解和调优

Java的垃圾回收机制详解和调优  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  JVM的gc概述

知识大全 jvm性能调优/垃圾回收器

  :新生代串行收集器(默认收集器)  算法复制算法  XX:+UseSerialGC指定使用新生代串行收集器和老年代串行收集器  优点效率高久经考验  缺点串行如果回收对象过多或者堆过大停顿时间会过

知识大全 Java垃圾回收机制

Java垃圾回收机制  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  java垃圾回收主要是靠一个

知识大全 Java堆的管理--透视垃圾回收机制

Java堆的管理--透视垃圾回收机制  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!   引言  J

知识大全 java虚拟机管理大内存

 众所周知jvm的内存是受限的一为机器的体系架构二为操作系统本身xxSPARC的内存映射是不同而各操作系统的内存管理机制也有区别以下是来自;Heap设定与垃圾回收JavaHeap分为个区Yo

知识大全 有关于JVM的垃圾收集

有关于JVM的垃圾收集  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  Java中使用newnew

知识大全 JVM,内存回收及其他

深入探索Java工作原理:JVM,内存回收及其他  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  

知识大全 JVM内存模型及垃圾收集策略解析(1)

JVM内存模型及垃圾收集策略解析(1)  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  一JVM内

知识大全 JVM中垃圾收集技术的变更

JVM中垃圾收集技术的变更  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  随着九十年代java语

知识大全 JVM内存模型及垃圾收集策略解析(2)

JVM内存模型及垃圾收集策略解析(2)  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  二JAVA