编写高级应用程序2

王朝other·作者佚名  2008-05-31
窄屏简体版  字體: |||超大  

新型同步

在Java 2发布之前,同步的方法和对象总是引发一些额外的性能干扰,这是因为用来实现这种代码锁定的机制采用了一种全局监控器注册,它在某些区域仅仅是单线程的(如搜索现存监控器)。在新发布的Java 2中,每个线程都有一个监控器注册,从而消除了许多现存的性能瓶颈。

假如你曾经使用过其它锁定机制来避免同步方法的性能干扰,现在则有必要重访这些代码并考虑新的Java 2新型锁定技术。

在下面的为同步块创建监控器的例子中,你可以将速度提高40%。所用时间在采用JDK1.1.7和采用Sun Ultra 1上的Java 2时分别为14ms和10ms。

class MyLock {

static Integer count=new Integer(5);

int test=0;

public void letslock() {

synchronized(count) {

test++;

}

}

}

public class LockTest {

public static void main(String args[]) {

MyLock ml=new MyLock();

long time = System.currentTimeMillis();

for(int i=0;i<5000;i++ ) {

ml.letslock();

}

System.out.println("Time taken="+

(System.currentTimeMillis()-time));

}

}

Java Hotspot

Java HotSpotTM虚拟机是Sun Microsystem公司的下一代虚拟机。虽然Java HotSpot 虚拟机所采用的规范与Java 2虚拟机所采用的规范相同,但它已被重新设计,并使用了最先进的技术,从而可在未来许多年内,能够为Java平台提供一个强大而可靠的性能引擎。Java HotSpot虚拟机可提供:

可以探测并加速性能要害性代码的实时动态优化技术。

为发挥线程的最大性能而设计的超快速线程同步。

可最快速获取的精确而可靠的垃圾收集器。

由于其简洁、高层次以及面向对象的设计,因而在可维护性和可扩展性方面的重要改进。

JIT(Just-In-Time)编译器

用来提高应用程序性能的最简单的工具是Just-In-Time(JIT)实时编译器。JIT是一个可将Java字节码转换为本地机器码的代码生成器。由JIT调用的Java程序,其运行速度通常要比由解释程序执行字节码时的速度高得多。

JIT编译器首先是在Java开发工具包(JDKTM)1.1.6中作为一种性能更新出现的,而现在它是你在Java 2平台上使用Java解释程序命令时调用的标准工具。你可以使用Java虚拟机的-Djava.compiler=NONE 选项来使JIT编译器失效,这在JIT的末尾部分有更具体的阐述。

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
 
© 2005- 王朝網路 版權所有 導航