Oracle數(shù)據(jù)庫對Sun未來規(guī)劃是什么樣?
我個人對Oracle收購Sun一直很關(guān)注,同時對Java的發(fā)展動向也是十分的關(guān)注,今天我在相關(guān)網(wǎng)站再次看到關(guān)于InfoQs上看到國外的相關(guān)人事對Oracle對Sun未來的規(guī)劃分析的信息,轉(zhuǎn)載過來,提醒自己,也是提醒所有和筆者一樣的Java愛好者。
在經(jīng)過了將近9個月的漫長等待后,Oracle終于獲得歐盟的批準(zhǔn)成功完成對Sun的收購。近日Oracle宣布了對Sun技術(shù)與平臺的未來規(guī)劃。
Java、JVM及JVM上的各種語言
Oracle產(chǎn)品開發(fā)高級副總裁Thomas Kurian說,Oracle計劃集成Sun HotSpot與Oracle JRockit Java虛擬機;他又補充到,Oracle打算”振興“Java開發(fā)者社區(qū)并將Java編程模型的觸角延伸到新近涌現(xiàn)的應(yīng)用開發(fā)范式上來。比如 說,Oracle計劃增加模塊化特性、為Java SE增加多核處理支持、為Java ME增加新的特性,如多點觸摸等。
InfoQ聯(lián)系到了Allex Miller以了 解Oracle數(shù)據(jù)庫對JVM的規(guī)劃:
我感覺Oracle想將BEA LiquidVM ”JVM on a hypervisor“技術(shù)中的精華部分整合到現(xiàn)有的HotSpot代碼中;當(dāng)然了,虛擬化是JRockit JVM中最有意思,也是最棒的部分,非常迎合當(dāng)前的虛擬化、云、集群等趨勢,可以通過這些手段管理計算機資源,相對于IBM J9 JVM來說,這些內(nèi)容也是極具競爭力的。
我也覺得移除permgen并使用thread-local的GC非常好。thread-local的GC指的是對逃逸分析(escape analysis)和堆棧分配(stack allocation)的優(yōu)化,而Hotspot已經(jīng)在這方面做了很多工作。大多數(shù)程序所創(chuàng)建的臨時對象都用在單獨的線程上下文中,很少被其他線程所用。
這樣,我們就可以直接在棧上為這些對象開辟內(nèi)存空間(這么做更快),無需使用堆,也不必使用常規(guī)的GC手段進行對象檢測與移除了(這么做會降低GC的次 數(shù),進而提升效率)。
對permgen的改進亟須解決一個問題:像Groovy或是JRuby這樣的語言會在執(zhí)行期動態(tài)生成大量的小類(small classes)以提供動態(tài)特性,而隨著JVM上動態(tài)語言的不斷增多,該問題也變得越來越嚴(yán)重。這些類污染了Java內(nèi)存中特定的“permgen”部分 而且難以回收,導(dǎo)致了嚴(yán)重的內(nèi)存問題。
JSR 292的invokedynamic就是為了解決該問題的:動態(tài)語言可以通過該指令在運行期直接鏈接到調(diào)用地址上,因此避免了生成大量內(nèi)部類的煩惱。
我認為最好的處理方式并不是消滅掉這些JVM,而是取其精華,棄其糟粕。這些工程團隊都有一些優(yōu)秀的人才,他們做出了很多創(chuàng)新性的工作,我希望他們能在這 個領(lǐng)域繼續(xù)做下去,只有這樣JVM才能繼續(xù)充當(dāng)老大的角色,吸引眾多具有開創(chuàng)性的新語言,如Scala、Clojure、Groovy及JRuby等。
Oracle對JCP的未來及其在Java 7中所扮演的角色所談甚少,來自RedMonk的Stephen O’Grady指出:
我覺得Oracle數(shù)據(jù)庫對JCP的態(tài)度要比Sun此前的做法更注重實效,但現(xiàn)在還很難預(yù)測未來的走向。
【編輯推薦】