快速业务通道

实时Java,第4部分 - 实时垃圾收集 - 编程入门网

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-06-16
lt;gc type="heartbeat" id="2" timestamp="Tue Mar 13 15:17:47 2007" intervalms="677.316">   <summary quantumcount="363">    <quantum minms="0.024" meanms="0.474" maxms="1.473" />    <heap minfree="261767168" meanfree="325154155" maxfree="433242112" />    <immortal minfree="14570208" meanfree="14530069" maxfree="14570208" />    <gcthreadpriority max="11" min="11" />   </summary> </gc> <gc type="trigger end" id="1" timestamp="Tue Mar 13 15:17:47 2007" intervalms="1682.816"/> </verbosegc>

实时Java,第4部分 - 实时垃圾收集(8)

时间:2011-06-22 Benjamin Biron Rya

每个 Verbose GC 事件都包含在 <gc></gc> 标记中。有多种可用的事件类型,但是清单 1 中给出了最常见的几种。synchgc 类型表示同步 GC,它是从头到尾连续运行的 GC 循环;即,不与应用程序交错运行。发生这种情况有以下两个原因:

System.gc() 由应用程序调用。

堆被注满,应用程序分配内存失败。

同步 GC 的原因包含在 <details> 标记中,其中 system garbage collect 用于第一种情形而 out of memory 用于第二种情形。第一种情形在应用程序的可维持性方面没有使用特定的参数。但是,在很多情况下从用户应用程序调用 System.gc() 会导致应用程序利用率降至 0% 并导致较长的暂停时间;因此应该避免这种情况。但是如果因为第二种情况发生同步 GC —— 内存不足错误 —— 则意味着 GC 不能跟上应用程序分配。因此您应该考虑增加堆或降低应用程序利用率目标以避免出现同步 GC。

trigger GC 事件类型对应 GC 循环的开始点和结束点。它们可用于对 heartbeat GC 事件进行分批。heartbeat GC 事件类型将多个 GC 时间量的信息整合到一个总括的冗余事件中。注意,这与 alarm 线程心跳无关。quantumcount 属性对应 heartbeat GC 中整合的 GC 时间量。<quantum> 标记表示关于 heartbeat GC 中整合的 GC 时间量的计时信息。<heap> 和 <immortal> 标记包含关于 heartbeat GC 中整合的时间量结尾的自由内存的信息。<gcthreadpriority> 标记包含关于时间量开始时 GC 线程优先级的信息。

时间量值指的是应用程序所见的暂停时间。普通的时间量接近 500 微秒,而且必须对最大的时间量进行监控以保证它们能够为 RT 应用程序提供可接受的暂停时间。长暂停时间可能源于 GC 被系统中的其他进程抢占,使其不能完成其时间量而且不能让应用程序恢复运行,或者是因为滥用了系统中的某些根结构并成长到了不可管理的大小(见 使用 Metronome 时的注意事项 一节)。

永久内存是 RTSJ 所需要的并且不服从 GC 的资源。出于这个原因,常常会发现冗余 GC 记录中的永久自由内存下降并且不会恢复。它用于诸如字符串常量和类之类的对象。需要注意程序的行为并适当地调整永久内存的大小。

应该监控堆的使用以保证总趋势保持稳定。堆自由空间呈下降趋势表明可能存在应用程序导致的泄漏。导致泄漏的原因很多,包括越来越多的散列表、不确定保存的大型资源对象和未清理的全局 JNI 引用。

图 9 和图 10 演示了自由堆空间中的稳定和递减的趋势。注意,容易实现本地的最小和最大空间,因为自由空间仅在 GC 循环期间增加并且在应用程序处于活动时和进行分配时相应减少。

图 9. 稳定自由堆

实时Java,第4部分 - 实时垃圾收集 - 编程入门网

实时Java

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号