- 1、本文档共6页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
JAVA JVM GC LOG分析和调优【转】??2010-09-09 22:55:48|??分类: java 性能 |举报|字号?订阅在大型的java运用中,要进行程序调优,指定一个合适的垃圾回收机制是必不可少的,那如何可确定某gc是否使得程序最优化呢?我们可以查看jvm打印出的gc日志来分析,并做出进一步优化,而目前并没有一篇文章明确的指明java中各种gc算法打印出日志的格式,以及如何阅读。所以接下来本文将试着边介绍各种垃圾回收机制边解释该回收机制下log的格式。1,垃圾收集算法1.1 引用计数法(Reference Counting Collector)系统记录对象被应用的次数,当应用次数为0时,就可以将该对象所占内存回收。该算法可以不用暂停运用,但缺点是无法解决重复运用的问题。所以java并没有提供此类垃圾回收器。1.2??tracing算法(Tracing Collector)?tracing算法的垃圾收集器从根集开始扫描,识别出哪些对象可达,哪些对象不可达,并用某种方式标记可达对象。1.2.1?复制( Copying )算法复制算法将堆等分成2个区域,一个区域含有现在的数据对象(ToSpace),而另一个区域包含废弃的数据(FromSpace)。复制算法将存活的对象从FromSpace复制到ToSpace,然后切换Fromspace和ToSpace的指针,以前的FromSpace变为现在的ToSpace区域。? 1.2.2?标记-整理( Mark-Compact )算法??1.2.3 标记-清除(Mark-Sweep)?Using the -XX flags for our collectors for jdk6,?UseSerialGC is Serial + Serial OldUseParNewGC is ParNew + Serial OldUseConcMarkSweepGC is ParNew + CMS + Serial Old. CMS is used most of the time to collect the tenured generation. Serial Old is used when a concurrent mode failure occurs.UseParallelGC is Parallel Scavenge + Serial OldUseParallelOldGC is Parallel Scavenge + Parallel Old??SerailGC1,Serial Young GC??0.246: [GC 0.246: [DefNew: 1403K-105K(1984K), 0.0109275 secs] 1403K-1277K(6080K), 0.0110143 secs]??2, Serial Olg Gc1.133: [GC 1.133: [DefNew: 960K-64K(960K), 0.0012208 secs]1.135: [Tenured: 7334K-7142K(7424K), 0.0213756 secs] 7884K-7142K(8384K), [Perm : 364K-364K(12288K)], 0.0226997 secs] [Times: user=0.01 sys=0.00, real=0.02 secs]??Parrallel GC?serailGC的适应muti Core的加强版,就是在minorGC时候采用并行的进行收集,而fullGC并没有改变?Parralllel Compacting GC?在parrallelGC的基础上将fullgc也变为并发的了With the parallel compacting collector, the old and permanent generations are collected in a stop-theworld,mostly parallel fashion with sliding compaction. The collector utilizes three phases. First, each generation is logically divided into fixed-sized regions. In the marking phase, the initial set of live objects directly reachable from the application code is divided among garbage collection threads, and then all live objects are marked
文档评论(0)