Sung in Blog

                     一些技術文章 & 一些生活雜碎

          WebSite ConnecTionS

          西北工業大學 Offer收割機
          Java開源大全 Matrix - 與 Java 共舞
          Java World Kingnet國家網絡醫院

          常用鏈接

          隨筆檔案

          文章分類

          積分與排名

          • 積分 - 255942
          • 排名 - 221

          最新評論

          閱讀排行榜

          評論排行榜

          由于在當前主機操作系統上加上了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 閱讀(316) 評論(0)  編輯  收藏 所屬分類: Java
          主站蜘蛛池模板: 鄂托克前旗| 舞钢市| 疏勒县| 土默特左旗| 滨海县| 曲松县| 正定县| 如东县| 铜梁县| 清徐县| 澎湖县| 西城区| 庆元县| 太和县| 平陆县| 黄山市| 洪洞县| 沙湾县| 贺州市| 修水县| 确山县| 涿鹿县| 开阳县| 涟源市| 漠河县| 弥渡县| 宁国市| 搜索| 大埔县| 桃园县| 南部县| 邢台县| 黄浦区| 五大连池市| 碌曲县| 青河县| 五峰| 广西| 景东| 沙雅县| 新营市|