新聞中心

EEPW首頁 > 嵌入式系統(tǒng) > 設計應用 > 嵌入式Java虛擬機優(yōu)化技術

嵌入式Java虛擬機優(yōu)化技術

作者: 時間:2012-04-19 來源:網(wǎng)絡 收藏

無線手持設備市場對產(chǎn)生了巨大的需求增長,目前每10臺新出手機中就有8臺支持。本文關注設備平臺的性能問題,詳細介紹振戎融通自主研發(fā)的Java機產(chǎn)品——JMO+(JMOplus)的性能

本文引用地址:http://butianyuan.cn/article/171591.htm

在過去的幾年里,Java已經(jīng)在各個領域得到了廣泛的應用,尤其是無線移動領域,全球180多個移動運營商已經(jīng)推出了Java下載服務。無線手持設備市場對 Java產(chǎn)生了巨大的需求增長,目前每10臺新出手機中就有8臺支持Java。廣大的消費者,運營商,服務/內(nèi)容提供商以及手機制造商強烈渴望手機的 Java性能更加強勁,支持更多更復雜的應用,為產(chǎn)業(yè)鏈各方帶來更多商機和收入,為用戶帶來更豐富多彩的增值應用。

北京振戎融通通信有限公司(以下簡稱振戎融通)一直致力于Java的研究、開發(fā)和推廣,立志通過對國際先進技術的引進、掌握和創(chuàng)新,迅速實現(xiàn)專有技術的國產(chǎn)化,最終擁有整套先進技術產(chǎn)品的自主知識產(chǎn)權。本文著重關注設備Java平臺的性能問題,詳細介紹振戎融通自主研發(fā)的Java機產(chǎn)品—— JMO+(JMOplus)的性能技術。

Java功能和性能支持

嵌入式Java經(jīng)過幾年的蓬勃發(fā)展,所支持的應用越來越豐富,功能也越來越強大,諸如3D游戲、多人聯(lián)網(wǎng)等更高級的支持也已紛紛涌現(xiàn)。運營商和手機制造商希望出現(xiàn)更具可玩性的游戲,并期望充分利用 Java技術發(fā)展諸如商務、定位、視頻等各種各樣的增值服務,以期帶來更多收入。

為了支持這些新的業(yè)務,Java機必須不斷集成新的API。因此, JCP(Java Community Process)這一業(yè)界唯一的Java標準化機構不斷制定、發(fā)布相應功能的技術標準。 2004年振戎融通公司正式成為JCP成員,并且是幾個重要JSR 標準的專家組成員,參與這些標準的制定工作。振戎融通JMO+產(chǎn)品最為廣泛的支持了現(xiàn)在比較流行和通用的JSR標準,并根據(jù)市場的需求和客戶的需要提供一些擴展功能的支持,在功能上能夠提供給一個功能強大的移動Java運行平臺,能夠讓用戶感受到JAVA的豐富多彩,可以說JMO+產(chǎn)品在功能支持方面處于行業(yè)的領先地位。

北京振戎融通通信技術有限公司針對市場的需求,在JMO+性能方面運用了多種技術進行,針對不同的硬件平臺采用不同的優(yōu)化技術,以提供最優(yōu)的性能體驗。

Java虛擬機的性能瓶頸

Java 是一種解釋執(zhí)行的語言,它的優(yōu)勢是“一次編譯,到處運行”,因此Java具有很好的可移植性,開發(fā)和發(fā)布Java應用都很便捷,快速上市,節(jié)約成本;另外一個優(yōu)勢是Java字節(jié)碼代碼密度高,程序體積較小,便于進行下載,和裝入資源有限的嵌入式設備中。這種優(yōu)勢是明顯的,但對于嵌入式Java來說,由于其機制而帶來了不可避免的性能瓶頸。業(yè)界針對這個性能瓶頸都在尋找各自不同的解決之道,振戎融通在這方面也進行深入的研究,在解決這個性能瓶頸的方面取得了不菲的成績,性能解決方案處于業(yè)界領先地位。

Java性能優(yōu)化方案

加快Java執(zhí)行速度的方法包括幾種軟件方案,如字節(jié)碼解釋器優(yōu)化、即時編譯器、預先編譯器、動態(tài)自適應編譯(DAC)等。這些方法都能在一定程度上提高Java的性能,但同時也會帶來一些負面影響,比如這些軟件方案通常會增加對功耗、內(nèi)存的需求,或是延長啟動時間以致系統(tǒng)存在停頓感等現(xiàn)象。

硬件的解決方案有專用Java處理器和 Java協(xié)處理器,以及ARM推出的Jazelle DBX硬件指令集。這些方案在解決Java的效率方面的確發(fā)揮了重要作用,并有可能是今后的一個發(fā)展方向,特別是Jazelle技術。但是,硬件的解決方案將增加硬件成本和嵌入式設備系統(tǒng)的設計成本,并降低靈活性,這是設備制造商不愿意接受。因此,硬件的解決方案可以用于高端市場,但對成本敏感的中低端市場來說,該方案存在成本壓力。

JIT和AOT編譯器

JIT或 AOT編譯器是把字節(jié)碼動態(tài)地編譯成目標平臺的本地碼,然后直接執(zhí)行。顧名思義,AOT編譯方案就是在應用下載完后編譯所有代碼,而實際上,某些代碼很有可能根本就執(zhí)行不到。JIT編譯方案則是在運行到某段代碼之前,才對這一段代碼作即時編譯。這種即時處理策略會讓用戶在選擇啟動應用程序后,需要等待很長一段時間,程序才真正運行起來。另外,有研究顯示,動態(tài)編譯會導致代碼大小增大4~6倍。因此,除了降低應用程序的啟動速度外,無論JIT還是AOT方案,都需要很大的額外內(nèi)存來保存編譯生成的本地碼。

DAC動態(tài)自適應編譯

動態(tài)自適應編譯(DAC)是一種彌補 JIT編譯器缺點的方法。它采用通常被稱為的混合軟件方案,可以被看成是JIT編譯器和字節(jié)碼解釋器的組合。在開始階段,程序解釋器開始執(zhí)行,同時軟件對代碼進行分析并決定哪些關鍵代碼需要被編譯,這些關鍵代碼被鑒別出來后,即被編譯成本地碼運行。

Jazelle DBX技術

Jazelle DBX 是一種硬件架構擴展技術,為ARM處理器引入了第三套指令集—Java字節(jié)碼。新指令集建立了一種新的狀態(tài),處理器在此狀態(tài)下處理Java字節(jié)碼取指、譯碼和維護Java操作數(shù)棧。這種硬件架構擴展技術,重用已有的處理器資源不會增加額外的硬件成本和功耗,帶擴展的內(nèi)核能夠同時執(zhí)行Java字節(jié)碼及本地碼,開發(fā)者可以充分利用已有的操作系統(tǒng)、應用程序開發(fā)技術,在Java程序可移植性和性能之間取得很好的平衡。

JMOplus的性能優(yōu)化方案

振戎融通在解決性能優(yōu)化問題時,深入的分析了目前的軟件和硬件的解決方案,總結其中的優(yōu)勢和弊端,綜合運用了這些優(yōu)化方法,并進行了相應的改進。

每一種優(yōu)化方法都有其存在的道理,針對某種情況的優(yōu)化效果是最好的,但在某種情況下,其弊端表現(xiàn)的又十分的明顯,我們經(jīng)過了大量的實際測試數(shù)據(jù),將各種性能優(yōu)化方案有機的結合在一起,讓他們共同發(fā)揮作用,即解決了性能的優(yōu)化,又在相當?shù)某潭壬媳苊庖驗橐雰?yōu)化算法而帶來的負面影響。

比如采用 AOT和DAC的結合方案,通過大量的應用測試數(shù)據(jù)統(tǒng)計分析,找出調(diào)用頻度最高的Java API進行AOT,這樣即得到了AOT的快速執(zhí)行,又最大限度的控制了因為AOT而帶來的體積膨脹,優(yōu)化DAC的選擇算法,使得Java虛擬機避免陷入盲目的編譯過程,制定DAC的執(zhí)行時機,在應用啟動時,關閉DAC功能,這樣不會因為DAC的編譯而讓用戶忍受漫長的應用啟動階段。

根據(jù)不同的終端,動態(tài)的調(diào)整AOT和DAC的搭配比例,比如,在RAM相對ROM空間需求寬松時,將DAC的比例提高;在ROM相對RAM空間需求相對寬松時,將AOT的比例提高。

在支持Jazelle指令集的情況下,加入Jazelle加速技術,并調(diào)整AOT和DAC的相關參數(shù),將Jazelle支持的Java指令,并不進行AOT和DAC的優(yōu)化,而直接由芯片直接執(zhí)行,這樣即增加了效率而且節(jié)省了功耗。

還進行市場的進一步細分,比如針對游戲市場,定位市場,商務市場等,每個細分市場,其運行的Java應用都會有所側重,進而其使用和調(diào)用的Java API的頻度分布也是不同的,根據(jù)調(diào)用頻度的分布,調(diào)節(jié)AOT和DAC在不同市場的優(yōu)化方案會更加有效。

振戎融通不僅擁有了先進的性能優(yōu)化技術,并且更深入的挖掘優(yōu)化的細節(jié),使得JMO+產(chǎn)品在業(yè)界處于領先的地位。經(jīng)過業(yè)界權威測試工具測試比較表明,JMO+在功能、性能和質(zhì)量上已經(jīng)達到了國際先進水平。目前JMO+已經(jīng)獲得摩托羅拉、三星、LG、SKTT、TCL、UT等國內(nèi)外主流手機廠商采用,已經(jīng)有近 20款、100萬臺手機采用,成功取得了規(guī)?;逃?。

linux操作系統(tǒng)文章專題:linux操作系統(tǒng)詳解(linux不再難懂)


評論


相關推薦

技術專區(qū)

關閉