資料介紹
無線手持設備市場對Java產生了巨大的需求增長,目前每10臺新出手機中就有8臺支持Java。本文關注嵌入式設備Java平臺的性能問題,詳細介紹振戎融通自主研發的Java虛擬機產品——JMO+(JMOplus)的性能優化技術。
在過去的幾年里,Java已經在各個領域得到了廣泛的應用,尤其是無線移動領域,全球180多個移動運營商已經推出了Java下載服務。無線手持設備市場對 Java產生了巨大的需求增長,目前每10臺新出手機中就有8臺支持Java。廣大的消費者,運營商,服務/內容提供商以及手機制造商強烈渴望手機的 Java性能更加強勁,支持更多更復雜的應用,為產業鏈各方帶來更多商機和收入,為用戶帶來更豐富多彩的增值應用。
北京振戎融通通信技術有限公司(以下簡稱振戎融通)一直致力于嵌入式Java技術的研究、開發和推廣,立志通過對國際先進技術的引進、掌握和創新,迅速實現專有技術的國產化,最終擁有整套先進技術產品的自主知識產權。本文著重關注嵌入式設備Java平臺的性能問題,詳細介紹振戎融通自主研發的Java虛擬機產品—— JMO+(JMOplus)的性能優化技術。
Java功能和性能支持
嵌入式Java經過幾年的蓬勃發展,所支持的應用越來越豐富,功能也越來越強大,諸如3D游戲、多人聯網等更高級的支持也已紛紛涌現。運營商和手機制造商希望出現更具可玩性的游戲,并期望充分利用 Java技術發展諸如商務、定位、視頻等各種各樣的增值服務,以期帶來更多收入。
為了支持這些新的業務,Java虛擬機必須不斷集成新的API。因此, JCP(Java Community Process)這一業界唯一的Java標準化機構不斷制定、發布相應功能的技術標準。 2004年振戎融通公司正式成為JCP成員,并且是幾個重要JSR 標準的專家組成員,參與這些標準的制定工作。振戎融通JMO+產品最為廣泛的支持了現在比較流行和通用的JSR標準,并根據市場的需求和客戶的需要提供一些擴展功能的支持,在功能上能夠提供給一個功能強大的移動Java運行平臺,能夠讓用戶感受到JAVA的豐富多彩,可以說JMO+產品在功能支持方面處于行業的領先地位。
北京振戎融通通信技術有限公司針對市場的需求,在JMO+性能方面運用了多種技術進行優化,針對不同的硬件平臺采用不同的優化技術,以提供最優的性能體驗。
Java虛擬機的性能瓶頸
Java 是一種解釋執行的語言,它的優勢是“一次編譯,到處運行”,因此Java具有很好的可移植性,開發和發布Java應用都很便捷,快速上市,節約成本;另外一個優勢是Java字節碼代碼密度高,程序體積較小,便于進行下載,和裝入資源有限的嵌入式設備中。這種優勢是明顯的,但對于嵌入式Java來說,由于其機制而帶來了不可避免的性能瓶頸。業界針對這個性能瓶頸都在尋找各自不同的解決之道,振戎融通在這方面也進行深入的研究,在解決這個性能瓶頸的方面取得了不菲的成績,性能解決方案處于業界領先地位。
Java性能優化方案
加快Java執行速度的方法包括幾種軟件方案,如字節碼解釋器優化、即時編譯器、預先編譯器、動態自適應編譯(DAC)等。這些方法都能在一定程度上提高Java的性能,但同時也會帶來一些負面影響,比如這些軟件方案通常會增加對功耗、內存的需求,或是延長啟動時間以致系統存在停頓感等現象。
硬件的解決方案有專用Java處理器和 Java協處理器,以及ARM推出的Jazelle DBX硬件指令集。這些方案在解決Java的效率方面的確發揮了重要作用,并有可能是今后的一個發展方向,特別是Jazelle技術。但是,硬件的解決方案將增加硬件成本和嵌入式設備系統的設計成本,并降低靈活性,這是設備制造商不愿意接受。因此,硬件的解決方案可以用于高端市場,但對成本敏感的中低端市場來說,該方案存在成本壓力。
JIT和AOT編譯器
JIT或 AOT編譯器是把字節碼動態地編譯成目標平臺的本地碼,然后直接執行。顧名思義,AOT編譯方案就是在應用下載完后編譯所有代碼,而實際上,某些代碼很有可能根本就執行不到。JIT編譯方案則是在運行到某段代碼之前,才對這一段代碼作即時編譯。這種即時處理策略會讓用戶在選擇啟動應用程序后,需要等待很長一段時間,程序才真正運行起來。另外,有研究顯示,動態編譯會導致代碼大小增大4~6倍。因此,除了降低應用程序的啟動速度外,無論JIT還是AOT方案,都需要很大的額外內存來保存編譯生成的本地碼。
DAC動態自適應編譯
動態自適應編譯(DAC)是一種彌補 JIT編譯器缺點的方法。它采用通常被稱為的混合軟件方案,可以被看成是JIT編譯器和字節碼解釋器的組合。在開始階段,程序解釋器開始執行,同時軟件對代碼進行分析并決定哪些關鍵代碼需要被編譯,這些關鍵代碼被鑒別出來后,即被編譯成本地碼運行。
Jazelle DBX技術
Jazelle DBX 是一種硬件架構擴展技術,為ARM處理器引入了第三套指令集—Java字節碼。新指令集建立了一種新的狀態,處理器在此狀態下處理Java字節碼取指、譯碼和維護Java操作數棧。這種硬件架構擴展技術,重用已有的處理器資源不會增加額外的硬件成本和功耗,帶擴展的內核能夠同時執行Java字節碼及本地碼,開發者可以充分利用已有的操作系統、應用程序開發技術,在Java程序可移植性和性能之間取得很好的平衡。
JMOplus的性能優化方案
振戎融通在解決性能優化問題時,深入的分析了目前的軟件和硬件的解決方案,總結其中的優勢和弊端,綜合運用了這些優化方法,并進行了相應的改進。
每一種優化方法都有其存在的道理,針對某種情況的優化效果是最好的,但在某種情況下,其弊端表現的又十分的明顯,我們經過了大量的實際測試數據,將各種性能優化方案有機的結合在一起,讓他們共同發揮作用,即解決了性能的優化,又在相當的程度上避免因為引入優化算法而帶來的負面影響。
比如采用 AOT和DAC的結合方案,通過大量的應用測試數據統計分析,找出調用頻度最高的Java API進行AOT,這樣即得到了AOT的快速執行,又最大限度的控制了因為AOT而帶來的體積膨脹,優化DAC的選擇算法,使得Java虛擬機避免陷入盲目的編譯過程,制定DAC的執行時機,在應用啟動時,關閉DAC功能,這樣不會因為DAC的編譯而讓用戶忍受漫長的應用啟動階段。
根據不同的終端,動態的調整AOT和DAC的搭配比例,比如,在RAM相對ROM空間需求寬松時,將DAC的比例提高;在ROM相對RAM空間需求相對寬松時,將AOT的比例提高。
在支持Jazelle指令集的情況下,加入Jazelle加速技術,并調整AOT和DAC的相關參數,將Jazelle支持的Java指令,并不進行AOT和DAC的優化,而直接由芯片直接執行,這樣即增加了效率而且節省了功耗。
還進行市場的進一步細分,比如針對游戲市場,定位市場,商務市場等,每個細分市場,其運行的Java應用都會有所側重,進而其使用和調用的Java API的頻度分布也是不同的,根據調用頻度的分布,調節AOT和DAC在不同市場的優化方案會更加有效。
振戎融通不僅擁有了先進的性能優化技術,并且更深入的挖掘優化的細節,使得JMO+產品在業界處于領先的地位。經過業界權威測試工具測試比較表明,JMO+在功能、性能和質量上已經達到了國際先進水平。目前JMO+已經獲得摩托羅拉、三星、LG、SKTT、TCL、UT等國內外主流手機廠商采用,已經有近 20款、100萬臺手機采用,成功取得了規模化商用。
?
在過去的幾年里,Java已經在各個領域得到了廣泛的應用,尤其是無線移動領域,全球180多個移動運營商已經推出了Java下載服務。無線手持設備市場對 Java產生了巨大的需求增長,目前每10臺新出手機中就有8臺支持Java。廣大的消費者,運營商,服務/內容提供商以及手機制造商強烈渴望手機的 Java性能更加強勁,支持更多更復雜的應用,為產業鏈各方帶來更多商機和收入,為用戶帶來更豐富多彩的增值應用。
北京振戎融通通信技術有限公司(以下簡稱振戎融通)一直致力于嵌入式Java技術的研究、開發和推廣,立志通過對國際先進技術的引進、掌握和創新,迅速實現專有技術的國產化,最終擁有整套先進技術產品的自主知識產權。本文著重關注嵌入式設備Java平臺的性能問題,詳細介紹振戎融通自主研發的Java虛擬機產品—— JMO+(JMOplus)的性能優化技術。
Java功能和性能支持
嵌入式Java經過幾年的蓬勃發展,所支持的應用越來越豐富,功能也越來越強大,諸如3D游戲、多人聯網等更高級的支持也已紛紛涌現。運營商和手機制造商希望出現更具可玩性的游戲,并期望充分利用 Java技術發展諸如商務、定位、視頻等各種各樣的增值服務,以期帶來更多收入。
為了支持這些新的業務,Java虛擬機必須不斷集成新的API。因此, JCP(Java Community Process)這一業界唯一的Java標準化機構不斷制定、發布相應功能的技術標準。 2004年振戎融通公司正式成為JCP成員,并且是幾個重要JSR 標準的專家組成員,參與這些標準的制定工作。振戎融通JMO+產品最為廣泛的支持了現在比較流行和通用的JSR標準,并根據市場的需求和客戶的需要提供一些擴展功能的支持,在功能上能夠提供給一個功能強大的移動Java運行平臺,能夠讓用戶感受到JAVA的豐富多彩,可以說JMO+產品在功能支持方面處于行業的領先地位。
北京振戎融通通信技術有限公司針對市場的需求,在JMO+性能方面運用了多種技術進行優化,針對不同的硬件平臺采用不同的優化技術,以提供最優的性能體驗。
Java虛擬機的性能瓶頸
Java 是一種解釋執行的語言,它的優勢是“一次編譯,到處運行”,因此Java具有很好的可移植性,開發和發布Java應用都很便捷,快速上市,節約成本;另外一個優勢是Java字節碼代碼密度高,程序體積較小,便于進行下載,和裝入資源有限的嵌入式設備中。這種優勢是明顯的,但對于嵌入式Java來說,由于其機制而帶來了不可避免的性能瓶頸。業界針對這個性能瓶頸都在尋找各自不同的解決之道,振戎融通在這方面也進行深入的研究,在解決這個性能瓶頸的方面取得了不菲的成績,性能解決方案處于業界領先地位。
Java性能優化方案
加快Java執行速度的方法包括幾種軟件方案,如字節碼解釋器優化、即時編譯器、預先編譯器、動態自適應編譯(DAC)等。這些方法都能在一定程度上提高Java的性能,但同時也會帶來一些負面影響,比如這些軟件方案通常會增加對功耗、內存的需求,或是延長啟動時間以致系統存在停頓感等現象。
硬件的解決方案有專用Java處理器和 Java協處理器,以及ARM推出的Jazelle DBX硬件指令集。這些方案在解決Java的效率方面的確發揮了重要作用,并有可能是今后的一個發展方向,特別是Jazelle技術。但是,硬件的解決方案將增加硬件成本和嵌入式設備系統的設計成本,并降低靈活性,這是設備制造商不愿意接受。因此,硬件的解決方案可以用于高端市場,但對成本敏感的中低端市場來說,該方案存在成本壓力。
JIT和AOT編譯器
JIT或 AOT編譯器是把字節碼動態地編譯成目標平臺的本地碼,然后直接執行。顧名思義,AOT編譯方案就是在應用下載完后編譯所有代碼,而實際上,某些代碼很有可能根本就執行不到。JIT編譯方案則是在運行到某段代碼之前,才對這一段代碼作即時編譯。這種即時處理策略會讓用戶在選擇啟動應用程序后,需要等待很長一段時間,程序才真正運行起來。另外,有研究顯示,動態編譯會導致代碼大小增大4~6倍。因此,除了降低應用程序的啟動速度外,無論JIT還是AOT方案,都需要很大的額外內存來保存編譯生成的本地碼。
DAC動態自適應編譯
動態自適應編譯(DAC)是一種彌補 JIT編譯器缺點的方法。它采用通常被稱為的混合軟件方案,可以被看成是JIT編譯器和字節碼解釋器的組合。在開始階段,程序解釋器開始執行,同時軟件對代碼進行分析并決定哪些關鍵代碼需要被編譯,這些關鍵代碼被鑒別出來后,即被編譯成本地碼運行。
Jazelle DBX技術
Jazelle DBX 是一種硬件架構擴展技術,為ARM處理器引入了第三套指令集—Java字節碼。新指令集建立了一種新的狀態,處理器在此狀態下處理Java字節碼取指、譯碼和維護Java操作數棧。這種硬件架構擴展技術,重用已有的處理器資源不會增加額外的硬件成本和功耗,帶擴展的內核能夠同時執行Java字節碼及本地碼,開發者可以充分利用已有的操作系統、應用程序開發技術,在Java程序可移植性和性能之間取得很好的平衡。
JMOplus的性能優化方案
振戎融通在解決性能優化問題時,深入的分析了目前的軟件和硬件的解決方案,總結其中的優勢和弊端,綜合運用了這些優化方法,并進行了相應的改進。
每一種優化方法都有其存在的道理,針對某種情況的優化效果是最好的,但在某種情況下,其弊端表現的又十分的明顯,我們經過了大量的實際測試數據,將各種性能優化方案有機的結合在一起,讓他們共同發揮作用,即解決了性能的優化,又在相當的程度上避免因為引入優化算法而帶來的負面影響。
比如采用 AOT和DAC的結合方案,通過大量的應用測試數據統計分析,找出調用頻度最高的Java API進行AOT,這樣即得到了AOT的快速執行,又最大限度的控制了因為AOT而帶來的體積膨脹,優化DAC的選擇算法,使得Java虛擬機避免陷入盲目的編譯過程,制定DAC的執行時機,在應用啟動時,關閉DAC功能,這樣不會因為DAC的編譯而讓用戶忍受漫長的應用啟動階段。
根據不同的終端,動態的調整AOT和DAC的搭配比例,比如,在RAM相對ROM空間需求寬松時,將DAC的比例提高;在ROM相對RAM空間需求相對寬松時,將AOT的比例提高。
在支持Jazelle指令集的情況下,加入Jazelle加速技術,并調整AOT和DAC的相關參數,將Jazelle支持的Java指令,并不進行AOT和DAC的優化,而直接由芯片直接執行,這樣即增加了效率而且節省了功耗。
還進行市場的進一步細分,比如針對游戲市場,定位市場,商務市場等,每個細分市場,其運行的Java應用都會有所側重,進而其使用和調用的Java API的頻度分布也是不同的,根據調用頻度的分布,調節AOT和DAC在不同市場的優化方案會更加有效。
振戎融通不僅擁有了先進的性能優化技術,并且更深入的挖掘優化的細節,使得JMO+產品在業界處于領先的地位。經過業界權威測試工具測試比較表明,JMO+在功能、性能和質量上已經達到了國際先進水平。目前JMO+已經獲得摩托羅拉、三星、LG、SKTT、TCL、UT等國內外主流手機廠商采用,已經有近 20款、100萬臺手機采用,成功取得了規模化商用。
?
下載該資料的人也在下載
下載該資料的人還在閱讀
更多 >
- 嵌入式系統設計(九):虛擬機安裝常見錯誤匯總,保你順利安裝
- 嵌入式系統開發筆記1:構建VirualBox虛擬機開發環境
- Java虛擬機參數調優 1次下載
- 嵌入式Forth虛擬機架構的多任務調度算法設計與實現 0次下載
- 深入JAVA虛擬機 1次下載
- Java虛擬機基礎 0次下載
- 基于龍芯2號的Java虛擬機的移植與優化 25次下載
- 字符型嵌入式軟PLC虛擬機設計 25次下載
- 微軟java虛擬機下載
- 虛擬機的嵌入式開發
- Java虛擬機向ARM平臺的移植
- Java虛擬機向ARM平臺的移植
- 基于嵌入式平臺的并發虛擬機研究
- 一種嵌入式Linux與Windows JVM通信實現
- Java 技術在嵌入式系統中的應用
- 什么是虛擬機?虛擬機真的那么好用嗎? 463次閱讀
- 詳解Java虛擬機的JVM內存布局 434次閱讀
- 從Java入手如何了解虛擬機(VM) 812次閱讀
- KVM虛擬機管理和基本使用 1089次閱讀
- 一文帶你了解虛擬機 2643次閱讀
- 保護連接的嵌入式設備上的數據 587次閱讀
- 嵌入式系統的全面解析 3146次閱讀
- 虛擬機:QEMU虛擬機和主機無線網絡通訊設置 5280次閱讀
- 基于WEB技術與嵌入式技術實現對設備的控制與診斷 611次閱讀
- 由淺入深的了解Java虛擬機 2214次閱讀
- 基于嵌入式軟件的JNI技術應用解析 1020次閱讀
- 一種通過嵌入式互聯網技術控制在線嵌入式設備的遠程監控系統設計 3641次閱讀
- Java內存區域分配、Java虛擬機棧、對象的訪問方式和GC 2234次閱讀
- 基于VirtualBox虛擬機-Ubuntu操作系統的ARM嵌入式平臺搭建 2.5w次閱讀
- 深入理解Java虛擬機-判斷對象存活狀態 1202次閱讀
下載排行
本周
- 1TC358743XBG評估板參考手冊
- 1.36 MB | 330次下載 | 免費
- 2開關電源基礎知識
- 5.73 MB | 6次下載 | 免費
- 3100W短波放大電路圖
- 0.05 MB | 4次下載 | 3 積分
- 4嵌入式linux-聊天程序設計
- 0.60 MB | 3次下載 | 免費
- 5基于FPGA的光纖通信系統的設計與實現
- 0.61 MB | 2次下載 | 免費
- 6基于FPGA的C8051F單片機開發板設計
- 0.70 MB | 2次下載 | 免費
- 751單片機窗簾控制器仿真程序
- 1.93 MB | 2次下載 | 免費
- 8基于51單片機的RGB調色燈程序仿真
- 0.86 MB | 2次下載 | 免費
本月
- 1OrCAD10.5下載OrCAD10.5中文版軟件
- 0.00 MB | 234315次下載 | 免費
- 2555集成電路應用800例(新編版)
- 0.00 MB | 33564次下載 | 免費
- 3接口電路圖大全
- 未知 | 30323次下載 | 免費
- 4開關電源設計實例指南
- 未知 | 21548次下載 | 免費
- 5電氣工程師手冊免費下載(新編第二版pdf電子書)
- 0.00 MB | 15349次下載 | 免費
- 6數字電路基礎pdf(下載)
- 未知 | 13750次下載 | 免費
- 7電子制作實例集錦 下載
- 未知 | 8113次下載 | 免費
- 8《LED驅動電路設計》 溫德爾著
- 0.00 MB | 6653次下載 | 免費
總榜
- 1matlab軟件下載入口
- 未知 | 935054次下載 | 免費
- 2protel99se軟件下載(可英文版轉中文版)
- 78.1 MB | 537796次下載 | 免費
- 3MATLAB 7.1 下載 (含軟件介紹)
- 未知 | 420026次下載 | 免費
- 4OrCAD10.5下載OrCAD10.5中文版軟件
- 0.00 MB | 234315次下載 | 免費
- 5Altium DXP2002下載入口
- 未知 | 233046次下載 | 免費
- 6電路仿真軟件multisim 10.0免費下載
- 340992 | 191185次下載 | 免費
- 7十天學會AVR單片機與C語言視頻教程 下載
- 158M | 183278次下載 | 免費
- 8proe5.0野火版下載(中文版免費下載)
- 未知 | 138040次下載 | 免費
評論
查看更多