XML パーサベンチマークアプリケーションについて

なんばりょうすけ <rna@horobi.com>
2002-12-24

目次

概要

CLDC 1.0 / DoJa 2.0 環境で動くベンチマークアプリケーションのソースコードとバイナリを用意しました。P504i で動作確認しています。

ソースコードの構成

ソースコードを展開すると下のように各パーサ用のベンチマークテストのプロジェクトディレクトリが入っています。

ディレクトリ名説明
KXML2BenchkXML2 のベンチマーク
KXML2NSBenchKXML2Bench の名前空間サポート有効版
MXP1BenchMXP1 のベンチマーク
MXP1NSBenchMXP1Bench の名前空間サポート有効版
MinBenchMin のベンチマーク
MinMLBenchMinML1 のベンチマーク
MinML2BenchMinML2 のベンチマーク
NanoLiteBenchNanoXML/Lite のベンチマーク
TinyXMLBenchTinyXML のベンチマーク
XMLBenchダミーのパーサを使うベンチマークです。新しいパーサのベンチマークを作るときのベースにしてください。

各プロジェクトディレクトリは NTTドコモの 504i 向けアプリ作成ツール でそのままビルドできる構成になっています。

ディレクトリ名説明
binビルド済の JAR パッケージおよび JAM ファイルが含まれます。
resテスト用の XML ファイルとファイルリストが含まれます
srcベンチマークのソースコード及びパーサの(修正済の)ソースコードが含まれます。

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

また、MXP1Bench、MXP1NSBench、MinML2Bench に関してはそのままビルドすると JAR パッケージが 30KB 以上になり、現行の実機では動作しません。res ディレクトリを res1 ディレクトリまたは res2 ディレクトリに置き換えてビルドすることで 30KB 以内の JAR パッケージが得られます。そのようにして作った JAR パッケージ及び JAM ファイルが bin ディレクトリに含まれています。

アプリケーションの使用法

操作方法

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

結果表示

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

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

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

結果表示

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

チェック表示

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

すぐにテストしたい場合

端末のiモードブラウザで http://www.horobi.com/i/xmlbench/ からベンチマークアプリケーションをダウンロード出来ます。ただしサーバ運用上の都合により予告なくアクセスが遮断される可能性がありますのでご了承ください。

テストファイルの入れ替え

パーサにパースさせるテストファイルを入れ替えるには res ディレクトリの XML ファイルを入れ替えるだけでなく、dir.txt を書き換える必要があります。dir.txt はシフトJISで書かれたテキストファイルで、書式は以下の通りです。

ファイル名1 SJIS 要素数1/属性数1/文字数1 説明文1
ファイル名2 SJIS 要素数2/属性数2/文字数2 説明文2
...

テストファイル一つにつき一行のレコードを書きます。レコードの書くフィールドは1個の空白(半角スペース)で区切られます。ファイル名には空白を含まないようにしてください。説明文には空白が含まれても構いません。

SJIS の部分には端末の Java 環境で使える任意のエンコーディング名が使えますが、現在のところ SJIS しか使えません。

MIDP 版について

iアプリ版と同機能の MIDP 版のベンチマークアプリケーションを http://www.horobi.com/xml/mobile/res/ で公開しています(kXML2 と MXP1 については少し古いバージョンが入っています)。