Sung in Blog

                     一些技術文章 & 一些生活雜碎
          由于在當前主機操作系統上加上了Java虛擬機層,Java字節碼執行速度目前要比本地機器慢10到20倍。速度問題可能是影響Java推廣的唯一原因。影響Java字節碼執行速度的原因很多:

          (1)首先,驗證過程要花費時間,讀入的類要在運行時驗證,而傳統程序在程序編譯時即完成驗證工作。

          (2)其次,Java指令都是字節碼。由于大多數操作對象超過一個字節長,因此必須讀多個字節碼來取得操作符和不同操作數。

          (3)再次,由于Java完全采用堆棧機理,運算操作都在堆棧上執行。而傳統編譯器在編譯時進行多種優化工作,很多計算操作可直接在寄存器中完成,大大提高程序執行速度。

          (4)最后,在程序執行期間,系統要進行無用內存單元回收工作,在回收過程中,程序將停止執行,這無疑也會影響性能。以上只列出了四條主要的原因,還有其他一些因素綜合作用影響著Java虛擬機的性能。

          目前,針對Java虛擬機程序速度慢的問題,幾家主要的公司(如Microsoft,Borland等)提出了及時編譯技術(Just-In-Time)JIT。具體說,就是JIT編譯器在程序開始執行前把所有字節碼翻譯成本地機器碼,然后再將翻譯后的機器碼放在CPU上運行。這樣,我們就用字節碼編譯器代替了原來的解釋器,它對用戶透明而又提高了執行速度。據稱,Borland公司工發的JITJavaAppAccelerator能使應用程序運行速度比解釋執行快5到10倍。也許將來JIT編譯器會加到Java虛擬機中,從而解決所有性能問題。
          posted on 2005-10-28 19:52 Sung 閱讀(314) 評論(0)  編輯  收藏 所屬分類: Java
          主站蜘蛛池模板: 南丹县| 蒲江县| 南华县| 噶尔县| 洞头县| 南安市| 仙游县| 建阳市| 慈溪市| 客服| 石屏县| 治县。| 辛集市| 南部县| 鄂伦春自治旗| 滁州市| 香河县| 赤壁市| 平安县| 邳州市| 通海县| 和平区| 闽侯县| 巫山县| 贺兰县| 健康| 吐鲁番市| 东宁县| 桐庐县| 南昌县| 台前县| 丰都县| 达州市| 永泰县| 通化县| 华亭县| 贞丰县| 巢湖市| 庄河市| 合江县| 青田县|