編寫高級應用程序2

新型同步


  在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的末尾部分有更詳細的闡述。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章