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

Java技术,IBM气势: 垃圾堆积战略,第1部份: 差别的战略供应了灵[Java编程]

赞助商链接



  本文“Java技术,IBM气势: 垃圾堆积战略,第1部份: 差别的战略供应了灵[Java编程]”是由七道奇为您精心收集,来源于网络转载,文章版权归文章作者所有,本站不对其观点以及内容做任何评价,请读者自行判断,以下是其具体内容:

可以利用 4 种差别的战略配置 IBM Developer Kit for the Java 5.0 Platform(IBM SDK)中的垃圾汇集(GC).本文(关于 GC 的两篇文章的第一篇)介绍差别的垃圾汇集战略并谈论它们的性质.在阅读本文之前,您应当对 Java 平台中的垃圾汇集有基本的熟习.第 2 部份将给出一种挑选战略的量化办法,以及一些示例.

为什么要有差别的 GC 战略?

可以利用差别的战略使开辟人员增添了对利用程序的掌握本领.有很多种 GC 算法,每种算法各有优缺陷,这取决于工作负载的范例.(假如您不熟习 GC 算法的普通性主题,那么请拜见 参考资料 中其他读物的链接.在 IBM SDK 5.0 中,可以用 4 种战略 之一配置垃圾汇集,每种战略都利用自己的算法.默许战略关于大大都利用程序已经充足了.假如对利用程序的性能没有分外的要求,那么您对本文(和下一篇文章)的内容大概不感爱好;可以在不改变 GC 战略的情形下运行 IBM SDK 5.0.但是,假如利用程序需求最优的性能,大概很关注 GC 停登时间的长度,那么请读下去.您会看到最新的版本比从前的版本供应了更多挑选.

那么,为什么不让 Java 运行时的 IBM 实现自动地替您做出挑选呢?因为这不老是可行的.运行时很难理解您的需求.在某些情形下,但愿利用程序有很高的吞吐量;而在其他情形下,但愿削减停登时间.

表 1 列出可用的战略并注释每种战略应当在什么时刻利用.背面几节辨别具体描写每种战略的性质.

战略 选项 描写
针对吞吐量举行优化 -Xgcpolicy:optthruput (可选) 默许战略.关于吞吐量比短暂的 GC 停顿更重要的利用程序,普通利用这种战略.每当举行垃圾汇集时,利用程序城市停顿.
针对停登时间举行优化 -Xgcpolicy:optavgpause 通过并发地履行一部份垃圾汇集,在高吞吐量和短 GC 停顿之间举行折中.利用程序停顿的时间更短.
分代并发 -Xgcpolicy:gencon 以差别方法处理短时间存活的对象和长期存活的对象.采取这种战略时,具有很多短时间存活对象的利用程序会表现出更短的停登时间,同时仍旧产生很好的吞吐量.
子池 -Xgcpolicy:subpool 采取与默许战略类似的算法,但是采取一种对比合适多处理器计算机的分配战略.倡议关于有 16 个或更多处理器的 SMP 计算机利用这种战略.这种战略只能在 IBM pSeries® 和 zSeries® 平台上利用.需求扩大到大型计算机上的利用程序可以从这种战略中受益.

一些术语的定义

吞吐量是利用程序处理的数据量.衡量吞吐量的尺度是与具体利用程序相关的.

停登时间是垃圾汇集器将全部利用程序线程停下来,从而对堆举行汇集所阅历的时间.

在本文中,用表 1 中号令行选项中的缩写来表示这些战略:optthruput 表示针对吞吐量举行优化,optavgpause 表示针对停登时间举行优化,gencon 表示分代并发,subpool 表示子池.

什么时刻应当考虑采取非默许的 GC 战略?

倡议您老是先利用默许 GC 战略.在放弃默许战略之前,需求理解在哪些情形下应当采取其他战略.表 2 给出了一些缘由:

切换到 缘由
optavgpause 我的利用程序无法忍耐那么长的 GC 停登时间.假如 GC 停登时间可以削减的话,性能降低一些也可以承受.

我的利用程序正在一个 64 位平台上运行并利用非常大的堆 —— 超越 3 或 4GB.

我的利用程序是一个 GUI 利用程序,我很关注用户呼应时间.

gencon 我的利用程序分配了很多短时间存活的对象.

堆空间呈现碎片化.

我的利用程序是基于事件的(也就是说,在事件提交之后,事件中的对象就不再存活了).

subpool 在大型多处理器计算机上,我碰到了可伸缩性问题.


  以上是“Java技术,IBM气势: 垃圾堆积战略,第1部份: 差别的战略供应了灵[Java编程]”的内容,如果你对以上该文章内容感兴趣,你可以看看七道奇为您推荐以下文章:

  • 利用Javascript实现网页水印(非图片水印)
  • Java开辟环境的搭建
  • Ubuntu java安装与配置
  • 办理Ubuntu 10.04 Firefox3.6 Java浏览器插件不工作的问
  • Ubuntu重装后Java环境的设置
  • Sun Java进入Ubuntu 10.10软件中央
  • Ubuntu 10.10配置Java开辟环境
  • 在Ubuntu 10.10中配置Java环境变量的办法
  • Ubuntu下Java环境的搭建
  • Ubuntu 10.04 下安装 Java, JRE
  • Ubuntu 10.04下的搭建SUN JAVA开辟环境
  • Ubuntu 12.04安装java7
  • 本文地址: 与您的QQ/BBS好友分享!
    • 好的评价 如果您觉得此文章好,就请您
        0%(0)
    • 差的评价 如果您觉得此文章差,就请您
        0%(0)

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

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