当前位置:七道奇文章资讯编程技术Java编程
日期:2011-03-22 16:13:00  来源:本站整理

探秘Java 7新增垃圾回收器G1特点[Java编程]

赞助商链接



  本文“探秘Java 7新增垃圾回收器G1特点[Java编程]”是由七道奇为您精心收集,来源于网络转载,文章版权归文章作者所有,本站不对其观点以及内容做任何评价,请读者自行判断,以下是其具体内容:

G1垃圾回收器(简称G1 GC)是JDK 7中Java HotSpot VM新引入的垃圾回收器,Java SE 6 Update 14中已经包含了一个G1的体验版本(据51CTO之前的报道,在Java SE 6 u14于6月初登场时,本来Sun的声明是:G1垃圾回收器需求收费方能利用.但是之后不久,Sun表示这是一个曲解,改正了本来的公布声明,并表示目前以及将来对G1的利用都是完好免费的),G1是计划用于替换HotSpot低耽误的并行标志/排除垃圾回收器(也叫做CMS)的.

Java 7 G1属性

G1是一个服务端垃圾回收器,有以部属性:

◆并行和并发性:G1操纵了当今硬件中存在的并行性,当Java利用程序的线程被终止时,它利用全部可用的CPU(核心,硬件线程等)加快其终止,在终止历程中运行Java线程最小化整个仓库.

◆代:和其他HotSpot GC一样,G1是一代,意味着它在处理新分配的对象(年青代)和已经生存了一段时间的对象(年迈代)时会差别,它主要集合于新对象上的垃圾回收活动,因为它们是最大概回收的,旧对象只是无意拜候一下,关于大大都Java利用程序,代的垃圾回收关于替换筹划具有重要上风.

◆压缩:和CMS差别,G1会随时间推移对仓库举行压缩,压缩消除了潜在的碎片问题,确保长时间运行的操作流利和一致.

◆可猜测性:G1比CMS猜测性更佳,这都是由于消除了碎片问题带来的好处,再也没有CMS中终止期间呈现的负面影响,别的,G1有一个暂停猜测模子,答应它满意(或很少超越)暂停时间目标.

Java 7 G1描写

和别的HotSpot GC相比,G1采取了一个非常差别的仓库筹划办法,在G1中,年青代和年迈代之间没有物理断绝,相反,它们之间有一个持续的仓库,被分成大小一样的区域(region),年青代大概是一套非持续的区域,年迈代也一样,这就答应G1在年青代和年迈代之间机动地移动资源.

G1中的回收是通过消除暂停发生的,在此期间,幸存者指的是回汇集被转移到另一个区域,以便回收区域可以再生,消除暂停是并行的,全部可用的CPU城市参与,大大都消除暂停汇集可用的年青区域,和别的HotSpot GC中的年青回收是一样的,在暂停期间无意也会挑选年迈区域回收,因为G1在年青一代回收上还负担了年迈代的回收活动.

和CMS相同的是,G1会按期履行一个并发标志暂停,这个阶段的主要职责是辨认哪一个年迈区域的垃圾对象是最完好的,因为这些是最有效和最值得回收的,和CMS差别的是,G1不会履行并发排除暂停,相反,最有效的年迈区域是通过并发标志暂停标识的,在随后的消除暂停期间举行回收.

利用G1

G1仍旧被看做是试验品,可以利用下面两个参数开启它:

-XX:+UnlockExperimentalVMOptions -XX:+UseG1GC

为了设置一个GC暂停时间目标,利用下面的参数:

-XX:MaxGCPauseMillis =50  (暂停时间目标50ms)

利用G1时还可以指按时间隔断,当GC暂停持续时间没有上面给出的时间长时可以这么用:

-XX:GCPauseIntervalMillis =200  (暂停隔断目标200ms)

注意上面两个选项表示的目标,没有答应和保证,在某些情形下它们大概可以工作,GC不是老是可以履行它们.

别的,年青代的大小可以明确指定影响消除暂停时间:

-XX:+G1YoungGenSize=512m (年青代大小512M)

G1也利用幸存空间(大概是非持续的区域),它们的大小可以利用一个常见的参数指定,如:

-XX:SurvivorRatio=6

最后,为了运行G1充分施展其潜力,尝试设置以下两个默许被禁用了的参数,因为它们大概会表露一个罕有的竞争状况:

-XX:+G1ParallelRSetUpdatingEnabled

-XX:+G1ParallelRSetScanningEnabled

注意当设置了-XX:+PrintGCDetails后,G1比起别的HotSpot GC要烦琐得多,因为它会打印每个GC线程的计时和别的有助于举行弊端解除的信息,假如你想使GC日记更简单,请利用-verbosegc参数.

Java 7 G1最新进展

G1开辟目前主要集合在遗留的坚固性问题和改进性能,同时也在渐渐移除下面的限制:

◆G1不能完好支持JVM工具接口(JVM TI)或Java管理扩大(JMX),因此关于G1的监督和管理工具极大概不能正常工作;

◆G1不支持增量永久性代回收,假如一个利用程序产生了很多类转储,需求永久性代回收,这在完好GC期间是可以实现的;

◆从GC暂停时间来说,G1有时表现比CMS好有时比CMS差.


  以上是“探秘Java 7新增垃圾回收器G1特点[Java编程]”的内容,如果你对以上该文章内容感兴趣,你可以看看七道奇为您推荐以下文章:
  • 探秘Java 7新增垃圾回收器G1特点
  • 本文地址: 与您的QQ/BBS好友分享!
    • 好的评价 如果您觉得此文章好,就请您
        0%(0)
    • 差的评价 如果您觉得此文章差,就请您
        0%(0)

    文章评论评论内容只代表网友观点,与本站立场无关!

       评论摘要(共 0 条,得分 0 分,平均 0 分) 查看完整评论
    Copyright © 2020-2022 www.xiamiku.com. All Rights Reserved .