| |
新型同步
在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的末尾部分有更详细的阐述。
|
|