搜尋老魚筆摘(本網誌及所屬協作平台)

2009-04-04

JRE 64Bit 多版本於 GNU/Linux 性能測試報告(老魚版)

測試套件: 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)
JRE 目標版本(64-BIT - Server VM):
  1. OpenJDK 7 Project (非系統侵入式)
  2. OpenJDK 6 Project (非系統侵入式)
  3. Oracle JRockit JVM (非系統侵入式)
  4. Apache Harmony (非系統侵入式)
  5. IBM JRE for Linux (非係統侵入式)
  6. Ubuntu 9.04 套件庫 - OpenJDK 6 (系統侵入式/系統最佳化)

Java JRE 目標版本及各別測試報告結果:
  1. OpenJDK 7 Project
    1. java version "1.7.0-ea"
      Java(TM) SE Runtime Environment (build 1.7.0-ea-b52)
      Java HotSpot(TM) 64-Bit Server VM (build 15.0-b03, mixed mode)
  2. OpenJDK 6 Project
    1. java version "1.6.0_14-ea"
      Java(TM) SE Runtime Environment (build 1.6.0_14-ea-b03)
      Java HotSpot(TM) 64-Bit Server VM (build 14.0-b12, mixed mode)
  3. Oracle JRockit JVM
    1. java version "1.6.0_05"
      Java(TM) SE Runtime Environment (build 1.6.0_05-b13)
      BEA JRockit(R) (build R27.6.0-50_o-100423-1.6.0_05-20080626-2104-linux-x86_64, compiled mode)
  4. Apache Harmony
    1. Apache Harmony Launcher : (c) Copyright 1991, 2008 The Apache Software Foundation or its licensors, as applicable.
      java version "1.5.0"
      pre-alpha : not complete or compatible
      svn = r713673, (Nov 14 2008), Linux/em64t/gcc 4.1.1, release build
      http://harmony.apache.org
  5. IBM JRE for Linux
    1. java version "1.6.0"
      Java(TM) SE Runtime Environment (build pxa6460sr4-20090219_01(SR4))
      IBM J9 VM (build 2.4, J2RE 1.6.0 IBM J9 2.4 Linux amd64-64 jvmxa6460-20090215_29883 (JIT enabled, AOT enabled)
      J9VM - 20090215_029883_LHdSMr
      JIT - r9_20090213_2028
      GC - 20090213_AA)
      JCL - 20090218_01
  6. Ubuntu 9.04 套件庫 - OpenJDK 6 (系統侵入式)
    1. java version "1.6.0_0"
      OpenJDK Runtime Environment (IcedTea6 1.4.1) (6b14-1.4.1-0ubuntu4)
      OpenJDK 64-Bit Server VM (build 14.0-b08, mixed mode)



性能表現的優劣比:
  • 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

沒有留言:

張貼留言

熱門文章

大智若魚::人生處處是道場-站內SEO參考標籤雲