測試套件: javolution
說明:
javolution 提供一個性能較佳的集合(Collections)類別為主,
也是 L2J Project 中所採用的, javolution 提供一個實時與嵌入式系統
(Real-Time and Embedded Systems)的解決方案, 目前最新版本為 5.3.0.
在 L2J Project 中為了盡可能達到實時(Read-Time) MMORPG 的特性,
且 MMORPG(大型線上即時角色扮演遊戲)經常性大量必須採用 Collections APIs,
甚至於必要使用共時(Concurrent)與多執行緒(Multi-Threads),
javolution 在這部份的優異性,
被用來替代原有 Java SE 中 java.util.* 與 java.util.concurrent.* 中的集合 APIs.
- Java(TM) Solution for Real-Time and Embedded Systems
- Version 5.2.6 (J2SE 1.6+) July 22 2008
測試條件值:
- javolution Collections 類別對抗 Java SE 1.6+ Collections classes.
java -server -Xms512M -Xmx512M -jar javolution.jar perf
- 重覆執行 3次後, 記錄報告
- Xeon E3110 3.0G(雙核) L2=6MB, FSB=1333MHz, 8G RAM
- GNU/Linux Server Ubuntu Server 9.04 64BIT
- Linux 64BIT + JRE 64 BIT 可以突破 -XmxXXXM 在 Windows OS上的不足限制.
- Ex. Windwos 2003 Server 32BIT (1GB OS core, 3GB Processing)
- OpenJDK 7 Project (非系統侵入式)
- OpenJDK 6 Project (非系統侵入式)
- Oracle JRockit JVM (非系統侵入式)
- Apache Harmony (非系統侵入式)
- IBM JRE for Linux (非係統侵入式)
- Ubuntu 9.04 套件庫 - OpenJDK 6 (系統侵入式/系統最佳化)
Java JRE 目標版本及各別測試報告結果:
- OpenJDK 7 Project
- OpenJDK 6 Project
- Oracle JRockit JVM
- Apache Harmony
- IBM JRE for Linux
- Ubuntu 9.04 套件庫 - OpenJDK 6 (系統侵入式)
- OpenJDK 7 > OpenJDK 6(系統侵入式) > OpenJDK 6 > Oracle JRockit JVM > IBM JRE
- OpenJDK 7 在性能表現上, 在約近 40項的測試中, 少部份的 Collections API 已開始呈現超越 javolution.
- New java.util.LinkedList.add(element)
- Recycled java.util.ArrayList.add(element)
- New java.util.HashSet.add(element) , (but Recycled: X)
- Iterates over java.util.ArrayList
- New java.util.HashMap.put(key, value)
- Recycled java.util.HashMap.put(key, value)
- 其餘仍由 javolution 呈現領先.
http://sites.google.com/site/aionjtw/07-ce-shi-testing/javolution
沒有留言:
張貼留言