J2ME 環境での XML パーサのベンチマークについて

なんばりょうすけ <rna@horobi.com>

概要

CLDC 1.0 / MIDP 1.0 環境で動くサンプルを用意しました。J-Phone 端末(J-T51)で動作確認しています。

ソースコードの構成

mobile-xml-benchmarks-midp.zipをダウンロードしてください。展開すると、mobile-xml-benchmarks ディレクトリができます。その中に以下のように各パーサ用のベンチマークテストのプロジェクトディレクトリが入っています。

KXML2BenchkXML2 のベンチマーク
MXP1BenchMXP1 のベンチマーク
MinBenchMin のベンチマーク
MinML1BenchMinML1 のベンチマーク
MinML2BenchMinML2 のベンチマーク
NanoLiteBenchNanoXML/Lite のベンチマーク
TinyXMLBenchTinyXML のベンチマーク
XMLBenchダミーのパーサを使うベンチマークです。新しいパーサのベンチマークを作るときのベースにしてください。

各プロジェクトディレクトリは WTK 1.04 でそのままビルドできる構成になっています。

ただし、Min についてはライセンスの関係で Min のソースコードが入っていません(bin ディレクトリにビルド済の .jar ファイルは入っています)。Min ソースコードは別途入手し、src ディレクトリにあるパッチ min4j2me.diff を適用した com パッケージのソースツリーを使用してください。

プログラムの使い方

操作方法

ファイルの選択
起動するとファイル選択画面が表示されます。カーソルキーでファイルを選びます。
ファイル情報の表示
ファイル選択画面で選択ボタン(カーソル中央のボタンなど)を押すと選択されたファイルの情報を表示します。
ベンチマークの実行
ファイル選択画面で [Test] ボタンを押すとベンチマークが始まります。ベンチマークが終わると結果画面を表示されます。結果が表示されるまで数秒から十数秒かかる場合があります。
結果のチェック
結果画面から [Check] ボタンを押すとベンチマーク結果をチェックしてその結果を表示します。
直前の画面に戻る
各画面で [Back] ボタンを押すと前の画面に戻ります。
終了する
ファイル選択画面の [Exit] ボタンを押すとアプリケーションを終了します。

結果表示

図2:チェック表示
correct:
93/473/781
result:
93/473/781

OK.
図1:結果表示
file:svg01.svg
cnt:93/473/781
1st:1068ms
ngc:1108ms

ベンチマークではユーザーが選択したテストファイルをパースして、要素・属性・文字の数をカウントし、正しくパースされたかどうかチェックします。結果は図1,2のように表示されます。表示項目の意味は以下の通りです。

file:
選択したファイルの名前です。
cnt:
カウント結果です。要素数/属性数/文字数 の書式です。
1st:
初回のパース時間です。クラスロードなどのオーバーヘッドを見るのが目的です。2回目以降のテストでは表示されません。もう一度測定するにはアプリケーションを再起動する必要があります。
ngc:
2回目以降のパース時間の平均値です。初回パースの後同じファイルのパースを5回繰り返します。その5回分のパース速度を1/5した値がこの項目です。オーバーヘッドを除いた正味のパース速度をあらわしています。測定時には一度パースする毎に gc します。測定値には gc の時間は含まれません。

チェック表示

correct:
正しいカウントです。書式は cnt と同じです。
result:
実際のカウント結果です。書式は cnt と同じです。
OK. / NG.
判定結果です。correct と result が一致すれば OK, 一致しなければ NG です。