Java 7新功能介紹及與Java1.7性能測(cè)試比較
我們將進(jìn)行Java 7新功能和Java1.7性能測(cè)試比較,一般來說Java 7新功能主要是對(duì)更多類的支持以及加載的架構(gòu)。而Java 7與Java 1.5,1.6,1.7的性能測(cè)試比較,我們會(huì)得出結(jié)論,并將結(jié)果生成柱狀圖。
Java 1.4到1.5的修改很大,在編譯compile-time 方面提升很大,Java 6在運(yùn)行時(shí)runtime智能上做了優(yōu)化,Java 7的主要改進(jìn):模塊化。我們分析一下Java 7新功能的主要修改:
◆Modularization 模塊化– JSR 294 或者 Project Jigsaw
◆JVM 對(duì)動(dòng)態(tài)語言的支持
◆更多新的 I/O APIs 即將完成,包括真正的異步I/O 和最終的真實(shí)的文件系統(tǒng) file system API – JSR 203
◆對(duì)XML本地語言支持. (可能的probable)
◆Safe rethrow – 允許catch捕獲語句讓編譯器更加聰明的知道基于什么情況下重新throw什么內(nèi)容。
◆Null dereference expressions – Null 和 ‘?’ syntax 比較,語法類似 Groovy… 讓開發(fā)者避免過多的空值驗(yàn)證。
◆更好的類型推斷 Better type inference
◆多重捕獲Multi-catch
◆JSR 296 – Swing 應(yīng)用框架 application framework – 這方面需要更簡單和簡潔。
“小的”sun方面的修改有:
◆升級(jí)的類加載class loader 架構(gòu);
◆XRender pipeline for Java 2D:是Open JDK ntegrators Challenge project項(xiàng)目;
◆Swing 更新 – JXLayer, DatePicker, CSS styling 等;
◆JavaFX
sun方面“快速”的修改,主要是性能更新:
◆并發(fā)方面的細(xì)微調(diào)整 concurrencytweaks (JSR 166),更好的支持Multicore
◆G1 垃圾收集器Garbage collector - 帶來更小的中斷時(shí)間,有希望替代 CMS (Concurrent mark sweep) GC
◆64 bit VM的壓縮指針Compressed pointer
◆MVM-lite – 多個(gè)虛擬機(jī)能夠獨(dú)立運(yùn)行應(yīng)用和允許用kill -9殺死java應(yīng)用。
我測(cè)試了Java 1.5,1.6,1.7的性能
JDK 7版本:
Java代碼
- > java -version
- java version "1.7.0-ea"
- Java(TM) SE Runtime Environment (build 1.7.0-ea-b66)
- Java HotSpot(TM) Client VM (build 16.0-b06, mixed mode, sharing)
- > java -version
- java version "1.7.0-ea"
- Java(TM) SE Runtime Environment (build 1.7.0-ea-b66)
- Java HotSpot(TM) Client VM (build 16.0-b06, mixed mode, sharing)
測(cè)試環(huán)境:Dell D630 筆記本運(yùn)行 Windows 7 RTM (32 bit) , Intel Core 2 CPU (2.4GHz),3GB RAM.
測(cè)試數(shù)據(jù):
Test 1. 添加5百萬string 數(shù)值。
Test 2. 5百萬 ArrayList
Test 3. 5百萬鍵值的HashMap
Test 4. 打印5百萬 ArrayList
四次測(cè)試結(jié)果如下:
結(jié)論是:
Java 5 <=== 18% faster=== < Java 6 < ===46% faster===< Java 7
【編輯推薦】