技术开发 频道

Java性能的优化

    b) 及时编译技术(Just In Time)

  及时编译技术是为了解决指令解释技术效率比较低,速度比较慢的情况下提出的,其结构图如下所示。

     

    其主要变化是在JAVA程序执行之前,又JIT编译器把JAVA的字节码编译为机器码。从而在程序运行时直接执行机器码,而不用对字节码进行解释。同时对代码也进行了部分的优化。

    这样做的优点是大大提高了JAVA程序的性能。同时,由于编译的结果并不在程序运行间保存,因此也节约了存储空间了加载程序的时间;缺点是由于JIT编译器对所有的代码都想优化,因此也浪费了很多的时间。

    IBM和SUN公司都提供了相关的JIT产品。

    c) 适应性优化技术(Adaptive Optimization Technology)

    同JIT技术相比,适应性优化技术并不对所有的字节码进行优化。它会跟踪程序运行的成个过程,从而发现需要优化的代码,对代码进行动态的优化。对优化的代码,采取80/20的策略。从理论上讲,程序运行的时间越长,代码就越优化。其结构图如下:

     

    其优点是适应性优化技术充分利用了程序执行时的信息,发行程序的性能瓶颈,从而提高程序的性能;其缺点是在进行优化时可能会选择不当,发而降低了程序的性能。

    其主要产品又IBM,SUN的HotSpot.

    d) 动态优化,提前编译为机器码的技术(Dynamic Optimization,Ahead Of Time)

    动态优化技术充分利用了JAVA源码编译,字节码编译,动态编译和静态编译的技术。其输入时JAVA的原码或字节码,而输出是经过高度优化的可执行代码和个来动态库的混合(Window中是DLL文件,UNIX中是共享库.a .so文件)。其结构如下:

     

    其优点是能大大提高程序的性能;缺点是破坏了JAVA的可移植性,也对JAVA的安全带来了一定的隐患。
   
    其主要产品是TowerJ3.0.

0
相关文章