推薦文章:Java足夠快嗎?

banq發表於2003-02-09
Java在一般人腦子裡為什麼總是慢的,是因為他是OO還是執行在PC ,或是因為有JVM的存在,是解釋型語言?

文章從幾個權威機構研究得出,Java慢是因為OO,

既然OO很慢,那麼我們是否要放棄OO?
當然不能,OO的程式碼便於閱讀,便於理解,我們還是要注意一些細節:

如:
x += 5;
is faster than

x = x + 5;

Do you believe that

z = (a > b) ? a : b;
is more efficient than

if (a > b) z = a; else z = b;

那麼我們能做的就是最佳化Java:
辦法1:類專門化,如果一個類可以做的很多事情,那麼你就要學會簡化它多做這樣的幾個類,比如Lnumber可以做數字方面的事情,你要細分它,變成LFloat, LDouble等等

2.充分利用inlining嵌入技術:
由於方法的呼叫需要消耗大量的資源,因此,Java編譯器可以將一些方法呼叫轉化為程式碼嵌入(Inlining),就是將一段程式碼對一個方法的呼叫轉化為將該方法的程式碼在編譯時嵌入到呼叫處,這樣,由於減少了方法的呼叫,就可以大大提高程式碼的效能。

當將一個方法宣告為final,static,private時,編譯器就會自動的使用程式碼嵌入技術將該方法程式碼在編譯時嵌入到呼叫處。

全文請看:

http://www.fawcette.com/javapro/2002_03/magazine/columns/javatecture/default_pf.asp

還有中國人寫的一篇中文:

http://www.ccw.com.cn/htm/center/tech/02_6_24_5.asp

相關文章