Java 6 u18更新細節(jié) Hotspot性能大增
本報道出自InfoQ中文站,原標題為《Sun發(fā)布的Java 6第18次更新大大提升了性能并增加了對Window7的支持》。
Sun發(fā)布了Java 6的第18次更新,這次更新著重強調(diào)了性能的改進,包括Hotspot(16.0)新版,對UI應(yīng)用程序的啟動和運行時的改進。該發(fā)布還包括了對Ubuntu 8.04,Red Hat企業(yè)版Linux 5.3和Windows 7的支持,此外她還解決了357個bug。
企業(yè)開發(fā)者們特別感興趣的改進當然是Java 7中提出的垃圾回收站的改進。Garbage First(G1)垃圾回收站提升了可靠性和性能,而且,并行掃描垃圾回收站(Parallel Scavenger garbage collector)還包含了對改進的NUMA體系結(jié)構(gòu)的支持。大多數(shù)現(xiàn)代計算機都是基于NUMA體系結(jié)構(gòu)的,這該體系結(jié)構(gòu)中,訪問不同區(qū)域的內(nèi)存所需的時間是不同的。Java HotSport虛擬機實現(xiàn)了NUMA感知的內(nèi)存分配器,由它為Java應(yīng)用提供自動的內(nèi)存分配優(yōu)化。比如,每個系統(tǒng)中的處理器都有一個訪問低延遲高帶寬的本地內(nèi)存和存取很慢的遠程內(nèi)存。NUMA感知的分配器是為Solaris (>= 9u2)和Linux(kernel >= 2.6.19, glibc >= 2.6.1) 操作系統(tǒng)而實現(xiàn)的,并且可以通過 -XX:+UseNUMA標記打開或關(guān)閉并行掃描垃圾回收站。服務(wù)器的并行掃描器(Parallel Scavenger)默認使用其缺省值,也可通過指定 -XX:+UseParallelGC選項的值打開它。此改動所產(chǎn)生的影響非常大:當在8芯片Opteron機器上的使用SPEC JBB 2005基準進行評估時,NUMA感知的操作系統(tǒng)能夠帶來30%(32位操作系統(tǒng))到40%(64位操作系統(tǒng))的性能提高。
在此次更行中的其他的Hotspot變更包括代碼生成的改進,如優(yōu)化了通用字符串合并模式和刪除了不必要的整形基本類型之間轉(zhuǎn)換,還有其他新增選項,比如在完全垃圾回收之前或之后請求堆內(nèi)存映射或類歷史圖。遺憾的是,在第14次更新中激活的內(nèi)存泄漏分析的優(yōu)化,在這次更行中被關(guān)閉了,只能等待將來的某天被再次激活了。
Sun對于桌面和RIA市場的持續(xù)關(guān)注見證了桌面應(yīng)用和Java Web Start的性能的大大提升,其中包括:
◆更可觀的垃圾回收改進,其中包括新增的客戶端和服務(wù)端Java虛擬機的缺省堆配置。
◆類加載優(yōu)化讓啟動更快。
◆應(yīng)用啟動的改進,包括在Direct 3D使用時帶來的100至200毫秒的系統(tǒng)時間的節(jié)省。
◆對JavaFX運行時的預(yù)驗證的修正支持,它可以加速JavaFX應(yīng)用程序的預(yù)熱啟動,提升空間達15%。
◆為Web Start應(yīng)用和applet并行下載jar包。
◆更行了Java Web啟動,實現(xiàn)了JSR-56(6.0.18)版并解決了一些關(guān)鍵的bug(6888118, 6800992, 6863499)。
#t#本次發(fā)布中的其他變更有:
◆創(chuàng)建jar文件的時間降低了20%
◆JavaDB更新到10.5.3版本
◆VisualVM更新到1.2.1
◆StaX的細微更新(面向流的XML處理API)
在本次發(fā)布中沒有涉及安全相關(guān)的更新,但下一次與安全相關(guān)的更新有望在本季度發(fā)布。