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
          主站蜘蛛池模板: 绩溪县| 武城县| 中牟县| 高安市| 五河县| 西平县| 永州市| 临漳县| 额尔古纳市| 泰兴市| 隆回县| 上饶市| 茂名市| 旅游| 西和县| 綦江县| 漳州市| 邮箱| 滨州市| 涿鹿县| 广宁县| 石楼县| 武隆县| 扎赉特旗| 哈巴河县| 栖霞市| 富民县| 成安县| 漠河县| 上蔡县| 历史| 禹州市| 泽普县| 乡宁县| 阿城市| 江阴市| 家居| 大足县| 肥西县| 绥棱县| 临猗县|