快速业务通道

实时Java,第5部分 - 编写和部署实时Java应用程序 - 编程入门网

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-06-16
GC 暂停的问题提供了多种解决方案。它使 Java 程序员了解到自动内存管理的重要性,也引入了新的存储区,避免了要求程序员重新接管内存的 GC 影响。如介绍 NoHeapRealtimeThread 的一节所述,这会带来一些挑战,提高编写可靠 Java 应用程序的门槛。还有一种替代方案,适用于许多可以容忍极短暂停的 RT 应用程序,也就是使用一种 RT 垃圾收集器,例如 WebSphere Real Time 中的 Metronome。

使用 Metronome 运行 Lunar Lander 应用程序会将登月舱引领到更贴近正确位置的地方,而在高度度量中不会产生任何显著峰值,保证每次都安全着陆(参见图 3)。

图 3. 使用 WebSphere Real Time 的 Controller 的模拟

实时Java,第5部分 - 编写和部署实时Java应用程序 - 编程入门网

实时Java,第5部分 - 编写和部署实时Java应用程序(3)

时间:2011-06-22 Caroline Gough

在这次也就是第二次运行中,Controller 的 Java 代码保留原样,这是一个收益于 RT 垃圾收集器的普通 J2SE 应用程序。

可以为示例的调用添加 -verbose:gc 参数,以显示减少的 GC 暂停的细节,如以下输出所示:

<gc type="heartbeat" id="2" timestamp="Tue Apr 24 04:00:58 2007" intervalms="1002.940">  <summary quantumcount="171">   <quantum minms="0.006" meanms="0.470" maxms="0.656" />   <heap minfree="142311424" meanfree="171371274" maxfree="264060928" />   <immortal minfree="15964488" meanfree="15969577" maxfree="15969820" />  </summary> </gc>

这个示例输出报告了演示程序的一次运行内为时 1 秒的间隔内的 GC 活动。此处显示出 GC 运行了 171 次(quantumcount),还给出了应用程序从这些增量式 GC 暂停中得到的平均暂停时间(meanms)是 0.470 毫秒。

关于应用程序工作与 GC 暂停间交错的更具体观点,可录制一份 Metronome 跟踪文件,并用 TuningFork 分析工具查看(参见 参考资料),如图 4 所示:

图 4. 部分演示程序在 TuningFork 中的显示效果

实时Java,第5部分 - 编写和部署实时Java应用程序 - 编程入门网

一旦 GC 暂停被最小化,其他可能给一个运行中的应用程序造成干扰的因素就变得重要起来。其中之一就是即时(JIT)编译器的活动。将 Java 字节码编译成本地文件实际上是为了获得更好的性能,但生成本地代码时可能会导致暂停。此问题的解决方案之一是使用 AOT 编译预先编译 Java 字节码。

实时Java,第5部分 - 编写和部署实时Java应用程序(4)

时间:2011-06-22 Caroline Gough

应用程序的 AOT 编译

Java 运行时通常使用一个 JIT 编译器,为一个 Java 应用程序内执行最频繁的方法动态生成本地代码。在 RT 环境中,有些应用程序(比如说有着严格的截止日期的应用程序)可能无法容忍与动态编译活动相关的不确定性。而对于其他一些应用程序,编译众多用于启动一个复杂应用程序的负载也是不合人意的。面临这些问题的应用程序开发人员能够受益于使用 AOT 编译。

AOT 编译涉及到在应用程序执行前为应用程序的 Java 方法生成本地代码。这使用户能够避免动态编译的不确定性,同时又能获得与本地编译相关的最大性能收益。有必要了解,通常运行 AOT 编译(也称为预先编译)的代码要比用动态 JIT 编译器时稍慢。预先编译的代码有着静态的本质 —— 与 JIT 编译器动态生成的代码不同,因而不可能在经过一段时间后,得益于常用方法的进一步优化。WebSphere Real Time 目前不允许混合使用动态 JIT 编译和预先编译的代码。总之,AOT 编译能够以更低的运行时影响提供更确定的运行时性能,原因就是未出现动态编译,而通过支持动态解

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

分享到: 更多
  • iBATIS 3内的新特性:将iBATIS用作应用程序内的一种持久框架 - 编程入门网
  • Photoshop绘制高光水晶质感水晶苹果
  • 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号