GC算法设置.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
GC算法设置

GC算法设置 2008-11-24 12:04垃圾回收算法Java虚拟机可以有两种不同方法来区别活动对象和垃圾: 引用计数(Reference Counting)和跟踪(Tracing)1. 采用Reference Counting的垃圾回收器对于采用Reference Counting的垃圾回收器,系统为堆上每一个对象都维护一个计数器,当一个对象被创建并且别引用时,这个计数就被置为1。当有新的变量引用该对象,计数器进行自加运算。当一个引用超出作用范围或者被赋予新值的时候,计数器进行自减运算。引用计数为0的对象,会被作为垃圾回收。当一个对象被回收,该对象所引用的对象的引用计数都会相应减少,因而,一个对象的回收有时会引起其它对象的回收。Reference Counting方式的垃圾回收器,好处在于可以在很短的时间内运行,不会长时间的中断普通的程序运行,因而在RealTime的系统中应用较为普遍。Reference Counting方式的垃圾回收器,问题在于无法识别循环引用,比如父类对象还有子类引用的情况,即便父类和子类都已经不再能被访问到(unreachable),引用计数也把它们清除。另外一个问题是引用计数器的加减运算会增加系统的计算开销。2. 采用Tracing的垃圾回收器采用Tracing的垃圾回收器,遍历由根节点(root nodes)出发的引用关系图。在遍历过程中遇到的对象,就被标记为活动。标记既可以是对应对象中的某一个标志,也可以是独立的位图中的标志。当遍历完成以后,那些没有被标记的对象,就被作为垃圾回收了。最基本Tracing算法是Mark and Sweep垃圾回收器的另外一个责任是清除堆上的碎片(Fragmentation)。对于Mark and Sweep的垃圾回收器通常有两种实现方法来减少堆上的碎片: 压缩(Compacting)和拷贝(Copying)JVM相关参数设置-verbose:gc 会打印出每次GC执行的情况[GC 进行GC以前活动的对象占用空间-GC以后无法清除的对象占用空间(Heap的可用空间大小),GC执行时间]-XX:+PrintGCDetails 会打印出更加详细的信息[GC [DefNew: GC执行前Young Generation活动对象占用空间-GC以后YG无法清除对象占用空间(YG可用空间), 执行时间] 执行前Heap的占用空间-执行后Heap的占用空间(Heap的可用空间), 总体执行时间]-XX:+PrintGCTimeStamps 打印出每次执行GC的时刻-XX:MinHeapFreeRatio=最小Heap可用空间百分比当可用的Heap空间少于这个百分比,则这个Generation的Heap空间就会增长,以满足这个百分比-XX:MaxHeapFreeRatio=最大Heap可用空间百分比当可用空间百分比超出这个数值,该Generation的Heap空间会减少,以满足该百分比。-Xms 最小Heap空间-Xmx 最大Heap空间-XX:NewRatio=n表示Young Generation和Tenured Generation的比例是1:n-XX:NewSize=Young Generation的最小空间-XX:MaxNewSize=Young Generation的最大空间-XX:SurvivorRatio=nSurvivor区域和Eden区域的比值是1:n-XX:+UseParallelGC 采用Throughput Collector-XX:ParallelGCThreads=Throughput Collector采用的线程数 ================================================================================= Sun Hotspot JVM Version: 1.3.1+ 版本进行了很多优化,也克服了32位操作系统上2G 内存的限制。在设置JVM参数的时候,需要权衡throughput和footprint两个重要的考量。 JVM内存模型中分两大块,一块是New Generation, 另一块是Old Generation. 在New Generation中,有一个叫Eden的空间,主要是用来存放新生的对象,还有两个Survivor Spaces, 它们用来存放每次垃圾回收后存活下来的对象。在Old Generation中,主要存放应用程序中生命周期长的内存对象,还有个Permanent Generation,主要用来放JVM自己的反射对象,比如类对象和方法对象等。 在New Generation块中,垃圾回收一般用Copying的算法,速度快。每次GC的时候,存活下来的对象首先由

文档评论(0)

htfyzc + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档