IBM Support

Java 和 i -- 过去、现在和将来

Technical Blog Post


Abstract

Java 和 i -- 过去、现在和将来

Body

 

Javai - 过去、现在和将来

原文链接:http://ibmsystemsmag.blogs.com/you_and_i/2010/03/java-and-i-past-present-and-future.html

  

    你有没有想过你运行的是哪个版本的Java?今天,在IBM i上,对于Java你有很多选择。对于IBM i 6.1,有很多版本的Java可以考虑。我们先花几分钟来看一下这些选择,去除一些不清楚的概念,并且帮助你为你的应用程序作出对现在和未来都最好的决定。

 

    我们从IBM iJava世界的一点历史开始。很长时间以来,Java已经成为了IBM i平台上一项重要的技术。Classic JVMIBM i上第一个64位的JVM,并且是唯一一个嵌入到特许内部代码(licensed internal code, LIC)核心的JVM。这个版本的Java已经为IBM i社区服务了很久并且做的非常好,它让IBM i在各类基准测试、可扩展性和可靠性上取得很多成功。这些特点决定了这个平台的成功。当然过去的成功是很好的,我们也要关注一些技术上关键性的改进,这样才能在未来仍然保持成功。

 

    这个主题一直都伴随着Java。回望过去几年,Java语言有很多重要的更新。这些更新包含了已经开发出来的新的高性能垃圾回收技术(GC)和即时编译(JIT)技术。针对这些功能的新的算法已经包含在IBM Technology for Java的版本里,并且在总体性能上相对于Classic JVM带来了很大的提升。另外一个IBM集中精力在做的改进是集成。“集成”的概念,已经带领了IBM i团队很多年,这个概念在近几年内也被IBM标准JVM所拓宽。这种JVM被开发成为与Power硬件和运行在Java上的软件紧密集成的模式。当在Power硬件上使用新的IBM Technology for Java运行关键性产品如WebSphere应用服务器时,集成会带来性能上的显著提高。这种新的技术进步,伴随着IBMJava推出的让软件和硬件更加集成的方法,已经让Classic版本的Java在性能和功能上落后了。

 

    在商业上,可靠性是一个非常重要的问题。很多年以来,Classic JVM在这个问题上已经被证明有良好的记录。几年前,当我们开始发布IBM Technology for Java版本时,我们想要保证这种新版本与我们集成的Classic版本相比有很好的可靠性。我们发布这种""版本已经五年了。IBM Technology for Java已经在可靠性上做得非常好。这种新的JVM与其他IBM平台是使用了同样的基础架构。这种共同的基础意味着,运行在IBM i上的应用程序可以从所有在基于Power科技的操作系统上做的测试中受益。当与Classic版本比较时,这在可靠性上对于所有基于WebSphere程序服务器的应用程序而言,都是一个很大的进步。尽管这两种JVM的一些不同使我们在迁移上有一些顾虑,但是只有非常少的Java应用程序不能轻易的从Classic转换到新版的JVM上。还有一个比较重要的事情是,虽然Classic JVM仍然被IBM支持,但是IBM i 6.1将会是最后一个支持Classic JVMIBM i版本了。

 

    因为Classic JVM已经不再包含在新版的IBM i上了,所以对于JVM新的开发和改进只包含了新的IBM Technology for JavaClassic JVM版本仍会获得维护,其中包含了重要的安全更新,来保证一个对基于Java科技的应用程序安全的环境。但是这种维护已经随着代码库的老化变得越来越困难。

 

    从IBM i 5.4开始,你有机会享受所有IBM Technology for Java提供的好处。开始时,IBM i 5.4只包含了32位的实现。这似乎是一个严重的问题。Classic版本是64位的(有几乎无限制的堆容量),而现在这种新版只能运行一半的地址空间。这意味着一个小得多的堆容量。这种较小的地址空间受4GB堆空间的限制。而好消息是,因为这种JVM使用了更少的空间,这种JVM本身也需要较少的堆空间。32JVM4GB的堆空间限制。通过减少JVM的需求,通常能为运行IBM Technology for Java的应用程序和数据留出3GB的堆供它们使用。简单的说,这意味着什么呢?这意味着,大多数/很多Java应用程序可都以装进这个较小的JVM中,并且可以享受性能的提升和更小的内存消耗。当然也有例外,不过那些都是需要处理很大对象的大应用程序。

 

    一旦你迁移到了IBM i 6.1上,就没有限制了。IBM i 6.1同时支持32位和64位版本的Java。这意味着你的应用程序可以享受IBM Technology for Java带来的显著的性能提升。平均来讲,运行在这种新的JVM上,可以期待30%的性能提升。更不用提使用32位版本可以减少40%的内存消耗。IBM i 6.1增加的另外一个改进是Java 6的压缩引用(Compressed Reference),这给64JVM带来了很多性能上的好处。这也意味着JVM只使用了需要的扩展地址空间,而不是全部。这类新的进步是IBM Technology for Java的其他优点。

 

    向新的IBM Technology for Java版本迈进是一个非常简单的过程。对于大多数应用程序来说,这简单的如同改变Java主目录;或者对于WebSphere来说,简单的如同运行"enablejvm"脚本。当然,你会希望进行一个回归测试,来保证所有的功能都如同期望的那样。但是如果你在考虑升级操作系统级别,或者计划更新你的应用程序,那么这也许正是您考虑享受IBM Technology for Java带给您的所有好处的好时机。

 

这篇博客由Tim Rowe撰写,并由我们的Java团队提供了部分内容。感谢你们所有人对完成这篇关于IBM iJava转变的文章做出的贡献。

 

[{"Business Unit":{"code":"BU058","label":"IBM Infrastructure w\/TPS"},"Product":{"code":"SWG60","label":"IBM i"},"Component":"","Platform":[{"code":"PF025","label":"Platform Independent"}],"Version":"","Edition":"","Line of Business":{"code":"LOB57","label":"Power"}}]

UID

ibm11145560