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