Java技术,IBM风格: IBM Developer Kit简介 - 编程入门网
Java技术,IBM风格: IBM Developer Kit简介(4)时间:2011-01-30 IBM Chris Bailey在这些改进中,主要的新特性是异步编译、多级优化和分析驱动的重新编译。 异步编译 Java 方法的 JIT 编译现在在一个独立于进行调用的线程的专用线程上异步地执行。这意味着,调用某个 Java 方法从而触发编译的线程在编译期间不再被阻塞。方法被添加到编译队列中,而线程可以继续运行并执行方法的非编译版本。方法编译之后,对方法的下一次调用会运行 JIT 编译的版本。为了确保频繁使用的方法优先编译,队列常常会重新调整次序并重新确定优先级。 在多处理器计算机上,异步编译可以大大提高启动时的性能,因为应用程序启动阶段的大部分是单线程的,而 Java 方法的编译由一个单独的处理器承担。 多级优化 现在,JIT 编译器能够采用 5 个优化级别之一对 Java 方法进行编译。通过使用单独的采样线程,编译器判断特定的 Java 方法花费多长时间,由此判断这个方法是否需要 JIT 编译,以及应该采用哪个优化级别进行编译。最常执行的 Java 方法采用最高的优化级别进行编译,这会获得最大的性能收益,但是完成编译所花费的时间成本也最大,内存需求也可能更高。不经常使用的方法采用较低的优化级别进行编译,这样编译完成得很快并产生显著的性能收益。 分析驱动的重新编译 如果由于应用程序运行方式的改变,Java 方法需要以更高的优化级别进行编译,那么 JIT 编译器能够对它们进行重新编译。在最高优化级别上,根据从正在执行的代码自动生成的动态分析数据执行重新编译。这些信息反映了方法本身实际上是如何被使用的。在收集短期数据之后,使用此数据对方法进行重新编译并相应地优化。 虚拟机改进 在 Java 5.0 技术的 IBM 实现中,与其他组件一样,虚拟机也得到了大量改进。两个最重要的改进是共享类的实现以及分析和调试方面的新特性。 共享类 共享类原来只在 z/OS 和 OS/390 的 Java 平台 IBM 实现中可用。共享类的这种实现已经被废弃,替换为所有平台上的新实现。 新的实现在共享内存中维护一个静态类数据缓存,它可以在实现新的共享类功能的所有 IBM Java 运行时之间共享;这个缓存在 Java 运行时的调用之间持续存在。共享类功能应用于所有 JCL 和基于类路径的类,而且通过使用简单的 API 很容易应用于定制类装载器装载的类。在缓存已经填充之后,这种功能可以减少内存占用和启动时间。对于在一台计算机上有多个 Java 运行时,或者运行时常常重新启动的情况,这个特性尤其有效。 分析和调试 除了支持 Java Debug Wire Protocol(JDWP)、JVM Profiling Interface(JVMPI)和 JVM Tools Interface(JVMTI)之外,IBM 调试器实现还有另外两个特性:高速调试(high-speed debug) 和热代码替换(hot-code replace)。 高速调试允许在运行 Java 调试器的同时执行 Java 方法的 JIT 编译,而且这种编译可以采用几乎完全的优化。这在调试大型 Java 应用程序时很有用,例如那些在 J2EE 堆栈上运行的应用程序;在这些应用程序中如果禁用 JIT,那么调试时的性能会很差。 热代码替换允许在调试器下动态地修改源代码,并立即运行新代码而不需要重新启动应用程序。 能够在调试器下几乎全速地运行代码并动态地修改代码,这大大提高了应用程序开发的效率。 Java技术,IBM风格: IBM Developer Kit简介(5)时间:2011-01-30 IBM Chris Bailey可靠性、可用性和可服务性改进 对于对 Java 应用程序和 Java 运行时本身进行监视和故障调试,Java 平台的 IBM 实现已经提供了基础设施和工具。Java 运行时中已经添加了许多这方面的改进,包括写入内部缓冲区的连续低级跟踪(作为第一次失败数据捕捉的辅助措施)、一个用于监视本机内存使用情况的 |
凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢! |