国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學(xué)院 > 開發(fā)設(shè)計(jì) > 正文

淺談JAVA VM 發(fā)展

2019-11-18 13:47:58
字體:
供稿:網(wǎng)友

  淺談 java VM 發(fā)展
Jim Huang <jimchyun @ ccns.ncku.edu.tw>
<jserv @ kaffe.org>

略為整理筆者對 Java VM 實(shí)作的心得,與諸位分享,在本文後半部將專注於若干
Open Source Java VM 專案的探討,筆者本身是 KaffeVM [1] 開發(fā)者,很希望本文
能對看倌有所幫助,更期待您的來信指教,藉由技術(shù)交流,讓 KaffeVM 有更好的發(fā)
展。
[1] http://www.kaffe.org/


■ JVM (Java Virtual Machine) 與 Java 韌體

Java VM 為一個虛擬的平臺,把這個平臺加以硬體實(shí)作,即 materialized 後,就是
Java chip。簡單來說,它就是一顆貨真價實(shí)的 CPU,假若我們不需完整 CPU 複雜的
設(shè)計(jì),一樣可以將它弄成 co-PRocessor,如此一來,就不須要在 x86 或 Sun Sparc
上用 Java VM 來模擬,而是直接把 Java bytecode「餵給」Java chip 上執(zhí)行。這
就是早先 Sun 稱為 picoJava 的技術(shù),當(dāng)然,隨著各軟硬體廠商的投入,引入更複
雜的技術(shù),但原則上觀念還是一致的。

「模擬」既然非真,當(dāng)然在效率上就較吃虧了,所以就常給人 Java 執(zhí)行超慢、超耗
資源的印象,其實(shí)那是指 Virtual Machine 的效能。為了改進(jìn) JVM 效能,使用許多
技術(shù)加速,其中最重要的莫如 JIT (Just In Time) Compiler (及時編譯器,注重:
不要跟「即時」[realtime] 搞混) 與 HotSpot 的 Adaptive Compiler 等 dynamic
compilation 技術(shù)。

Java Chip 是 Optimized for Java 的 OOP、eXPtion-handling、memory/garbage
collection 的特製 chip,而 x86 (即傳統(tǒng) CPU) 並沒有針對 C++ 所編譯的 machine
code 中的 new/exception-handling/memory allocation/late-binding 作硬體支援
的最佳化動作。

拜 VLSI 之賜,memory allocation 以及 garabage collection 的動作可交由硬體
來實(shí)作。在 modem 或電視中,用以數(shù)位類比轉(zhuǎn)換的 DSP (數(shù)位訊號處理) chip 而言
,有所謂的 bit-reverse (作 FFT [快速傅立葉轉(zhuǎn)換] 用的),倘若以一般 x86 來做
這個動作,起碼慢 10 倍以上。又如以往的浮點(diǎn)運(yùn)算,比整數(shù)運(yùn)算慢了 20 ~ 30 倍
,但因有了浮點(diǎn)加速器的出現(xiàn),浮點(diǎn)運(yùn)算的速度可為整數(shù)運(yùn)算的 1.3 倍!

前述提到將 JVM 以 co-processor 形式實(shí)作的方式,可以參考 Nazomi Communica-
tions [2] 公司的產(chǎn)品,他們推出一套 Java 加速晶片,這個代號為 JA108 的產(chǎn)品
專門針對 2G/2.5G 或 3G 的手機(jī)使用。不需要加裝額外的記憶體,只需將這 JA 208
IC 植入原有系統(tǒng)設(shè)計(jì)中,便可大幅提升 Java 應(yīng)用程式效率達(dá) 15 至 60 倍。
[2] http://www.nazomi.com/

接著,筆者在 Pentium III 上運(yùn)作 MS-windows 2000 進(jìn)行以下實(shí)驗(yàn):(原始碼與
machine code 的對照)

c++ 的 virtaul method calling:
┌──────────────────────────┐
│21: testx -> setx(20); // testx 是一個指標(biāo)物件 │
│──────────────────────────│
│00401091 push 00000014 │
│00401093 mov eax,dWord ptr [testx] │
│00401096 mov eax,dword ptr [eax] │
│00401098 mov ecx,dword ptr [testx] │
│0040109b call dword ptr [eax] │
└──────────────────────────┘
不算 argument 4 個指令

發(fā)表評論 共有條評論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 马尔康县| 井冈山市| 巴林右旗| 合阳县| 团风县| 儋州市| 洪泽县| 疏勒县| 日土县| 屏东县| 如东县| 方城县| 丹巴县| 浦北县| 德庆县| 张家界市| 岳阳市| 吉水县| 当涂县| 班戈县| 清丰县| 赞皇县| 鲁山县| 东乡族自治县| 孝义市| 资源县| 金堂县| 治多县| 方正县| 密山市| 山东省| 沧州市| 静安区| 肇州县| 五常市| 汕头市| 汕头市| 忻城县| 台州市| 镇坪县| 乌鲁木齐县|