Java の各種ベンチマーク

作成日:2003.02.08
更新日:2005.10.13

Java のベンチマークの調査。
JDK のコンポーネント別の性能測定のできるベンチマークを探しているが、 あまり合致したものはないようだ。
(iモード的なマイクロベンチマークは全部除外)

更新履歴
(2005.10.13) SPECjbb2005 を追加。
(2005.06.09) PetStore、WSTest 1.1、XML Mark 1.1 を追加。
(2004.03.07) デザインを変更。CSIRO の情報と JOlden Suite を追加

J2EE ベンチマーク

Servlet、EJB のベンチマーク。

ECperfSPECjAppServer2001SPECjAppServer2002SPECjAppServer2004
J2EE ベンチマークの本命。
JavaVM 単体の性能を測るのではなく、 Web アプリケーションサーバ + データベース + クライアントと J2EE サービス系全体の性能を計測する。 計算機も複数台使っても OK。
そのため測定環境を構築するのが凄い面倒。 そのため、各社ともあまり結果を発表していない。
SPECjAppServer2001 と ECperf 1.1 は一緒で、 EJB 1.1 対応。 SPECjAppServer2002 は EJB 2.0 対応になったもの。
SPECjAppServer の方は売り物 ($2,000)。
ECperf のイメージ画像は「酵素パワーのアッタク」に似ていた。
CSIRO Stock-OnLine ベンチマーク
オーストラリアにある調査会社 CSIRO が 自社内で持っている株式取引を模した EJB 主体のベンチマーク。 EJB 主体の Session Bean 版と CMP Entity Bean 版がある。
有名な CSIRO の Web アプリケーションサーバーの性能比較レポートに利用されているのだが、 どうやって入手するのかは不明。 CSIRO にしかるべき金を払えば使わせてくれると思われるが。。。
Java PetStore サンプルアプリケーション v1.3.2 (J2EE 1.3用)J2EE 1.4 RI 内に存在
Servlet + EJB + JDBC + JMS を使った J2EE のサンプルプログラム。 オンラインペットショップをシミュレーションしている。
Microsoft がこのプログラムをターゲットにして .NET と Java の速度比較を行ってきた ため 一種のベンチマークとして扱われている。
WSTest 1.1
SUN と Microsoft の間で行われた J2EE と .NET Framework の速度比較の中から出てきたベンチマーク。
Web Services (XML-RPC) に関する速度を計測する。
EchoVoid、EchoStruct、EchoList、GetOrder の 3 つの Web サービスをテストする。

サーバー系ベンチマーク

Java2 Standard Edition の範囲で動く サーバー系アプリケーションを模した ベンチマーク。

SPECjbb2000
TPC-C を模したサーバー向けベンチマーク。 これも JavaVM の性能を測るベンチ。
基本的に 1 つのプログラムとして完結しているが、 input - business logic - database の 3 層モデルのサーバを構築する。 サーバ系ベンチマークとしてはそこそこ信頼がおけるが、 もうすぐリタイアでしょう。
IBM の pBOB ベンチマークが元になっているが、 売り物 ($400)。
SPECjbb2005
jbb2000 の調整版。 SPECjbb2000 からの変更点は以下の通り。
  • Java 5.0 以上が必要 (Generics を使用等の理由)
  • 計測時間の変更 (1warehouse の計測時間が120秒→240秒)
  • データベース部分を B木構造 → HashMap/TreeMap に変更。
  • 金額のデータを double から BigDecimal に変更。
  • System.gc() を呼ばない。
  • ソースコードが OOP スタイルに修正される。
  • 出力のフォーマッタ等に XML を使用。
  • SPECint_rate200x のように、独立した JVM を並列に走らせて総合点を競う multi-JVM モードが追加。
売り物。
Volano benchmark
元々は Java で書かれたチャットシステムで、 それをベンチマークに流用したもの。
チャットサーバの性能と、チャットクライアントの性能が測れ、 それぞれ JavaVM を 1つづつ立ち上げる必要がある (クライアントは複数でもよい)。
このベンチマークの特徴は猛烈にスレッドを生成する点。 デフォルトでは 10 のチャットルームを開設し、 それぞれ 20 人のユーザーがチャットに参加するのを モデル化している。 1ユーザーにそれぞれに 2 スレッドづつ生成する。 同一マシン上でサーバとクライアントを同時に立ち上げると 800 スレッドになる計算?
ベンチマークとして使う分には無料。
JETMark benchmark
Netroscope 社の e-コマースアプリケーションを模した トランザクションベンチマーク、、、らしい。
Web ページにつながらないので、確認できない。

数値計算・単機能ベンチマーク

SPECjvm98
クライアント JavaVM としての性能を 測るベンチマークスイート。
check、compress、jess、db、javac、mpegaudio、mtrt、jack の 全部の 8 つのベンチマークの集合体。
すでに 5 年が経過したベンチマークで、現在では軽すぎて何を計測しているのか不明。
売り物 ($100)。
CaffeineMark 3.0
Pendragon 社の提供するクライアント向け性能の測定テスト。
Sieve、Loop、Logic、String、Float、Method、Graphcis、Image、Dialog の 9 つのベンチマークを行って、その総合得点をスコアにする。
Web ベースから実行できる Applet 形式のベンチマーク。無料で公開。
Java Grande Forum Benchmark Suite
Java Grande Forum の謹製のベンチマークスイート。
3 つのセクションと、 3 つのマシンカテゴリに分かれている。
Section1 では JavaVM の基本機能、 Section2 では数値計算の基本動作、 Section3 では大規模な数値計算を計測する。
カテゴリは、 シングルスレッド版、マルチスレッド版、MPI 版の 3 種類。 別にベンチマークを C と FORTRAN で書き直したバージョンも存在。
特に Section1 では arithmetic operations、 variable assignment、 casting、 creation objects and arrays、 loop overheads、 math library operations、 method invocation、 serialization、 exception handling、 forking and joining threads、 barrier synchronization、 synchronized blocks and methods の ような基本機能を測定することが可能。
The JOlden Benchmark Suite
Aheses2 という Python で書かれた ベンチマークフレームワークがあり、 そのデモ(?)として The JOlden Benchmark が含まれている。
JOlden Benchmark Suite は 計算物理学などで多用されるアルゴリズムの ベンチマークを集めたもの。
BH (Barnes-Hut ツリーコード法)、 BiSort (Bitonic Sort)、 Em3d (電磁波の伝播モデル)、 Health (Columbian health-care system?)、 MST (最短距離木)、 Perimeter (Quardtree を用いた境界計算?)、 Power (Power pricing problem)、 TreeAdd (2分木操作)、 TSP (巡回セールスマン問題)、 Voronoi (ボロノイ図) の 10 問がある。
(筆者は、それぞれのベンチマークが何を計算しているかはよく分からない)。
SciMark 2.0
Java で浮動小数点演算機能 / 最適化に的を絞ったベンチマーク。
FFT(Fast Fourier Transform)、 SOR(Jacobi Successive Over-relaxation)、 Monte Carlo integration、 Sparse matrix multiply、 dense LU matrix factorization の 5 つの数値計算を行う。
無料で公開。
Interfacing Java with Native Code
ちょっと珍しい JNI 呼び出しの性能測定を行うテスト。
JNI の性能、特に JNI 実行のオーバーヘッドを評価するためのツール。 C で実行した場合、pure Java で実行した場合、Java + JNI で実行した場合の 3 種 6項目を測定。
当然このテストにはネイティブ C コンパイラが必要。 Solaris, Linux, NT and AIX で動作するようだ。
無料で公開。
Linpack Benchmark - Java Version
Linkpack の Java バージョン。
BTest
単純な数値計算のベンチマーク。
Applet 対応。

画像処理系ベンチマーク

JFCMark 1.0
EXCELSIOR 社が公開している JFC/Swing の性能を測定する画像系ベンチマーク。
画像処理の絡んだ Button、Image、InternalFrame、LayoutManagers、Source(View)、 Table、Tree の 6 カテゴリ、22 種類のパターンがある。
何故かロケールが日本語だと、 ベンチマーク中の文字も日本語になる。 無料。
(JDK にはいっている demo/jfc/ 以下の Swing デモは EXCELSIOR 社製)

XML 系ベンチマーク

XML Mark 1.1
SUN の作成した XML parsing のベンチマーク。

Java XML Models Benchmark
XML ドキュメントモデルの性能測定を行うためのベンチマークらしい。
本来は異なる DOM パーサの性能比較が目的っぽい。
SAX、Crimson v1.1.3、Xerces v1.4.4、Xerces2 v1.0、JDOM b7、dom4j v1.1、 Electric XML v3.2、XML Pull Parser XPP2 2.1.7 が比較可能。
無料で公開。
SAX Parser Benchmarks
これも SAX パーサの性能比較のためのベンチマーク。 無料で公開。
XPB4J
これも XML パーサの性能比較ベンチマーク。
SAX Benchmark
なんばりょうすけ氏が作成した イベント駆動型XMLパーサのためのベンチマーク。

その他

その他、 普通のアプリケーションだがベンチマークとして使えるもの。 過去の論文等でベンチマークとして使われたもの。

Java Compiler Compiler(JavaCC) 2.1
The Java Parser Generator。
yacc みたいなものらしい。
FOP (Formatting Objects Processor)
XML Translator。
簡単にいうと、 XML フォーマットを PDF 化してくれる PDF レンダラー。
ImageJ
ドローツール。
LenaWaves の機能を用いて、 ベンチマークができるようだ。

コメント

コメントを書き込む
[1] [ma2shita] 2009-09-30 16:44:31
Javaのベンチマークソースを探していました。助かりました。
The Java Grande Forum Benchmark SuiteのURLが変わっていたようなので、お知らせしておきます。
http://www2.epcc.ed.ac.uk/computing/research_activities/java_grande/seq/download.html


TOP    掲示板    戻る
Written by NAKAMURA Minoru, Email: nminoru atmark nminoru dot jp, Twitter:@nminoru_jp