探秘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编程]”的内容,如果你对以上该文章内容感兴趣,你可以看看七道奇为您推荐以下文章:
本文地址: | 与您的QQ/BBS好友分享! |