JaPonの動作速度検証

Palm日本語化ソフトとして、人気の高いJaPon。Readmeに「だいたいのAPIがオリジナルのAPIより若干高速に動作しています お暇な方はベンチマークを取られてみると面白いかも…」とあるので、それを真に受けた暇な(笑)私が確かめていきます。あわせて他の日本語化ソフトとの比較もやっています。

WinDrawChars

画面に文字を書く命令。まずはこれから、いってみましょう。

検証用プログラムの概要

今回用意したプログラムは、こんな動作をします。

OnBoardCで生成されるスケルトンを、ちょこちょこといじりました。もし必要な方は、↓からダウンロードできます。
JaPonTest01.zip
※私が使っているヘッダファイルも入ってますけど、今回のプログラムには不要な記述も入ってます…。
※「こんなプログラムでは検証にならん!こうやって書くんだ!」というご意見・ご指摘、お待ちしてます。

検証方法

検証は、こんな感じに行います。

結果

1.日本語化オフ
1回目2回目3回目4回目5回目 
144334144334144346144286144286
6回目7回目8回目9回目10回目平均
144289144404144393144335144421144342.8
10秒で約14万回だから、1秒間に約1万4千回も処理してくれるんですねー。働き者ですね、Palmは(笑)

2.CJKOSオン
1回目2回目3回目4回目5回目 
6218862192621686217362180
6回目7回目8回目9回目10回目平均
621846216862198621946220062184.5
日本語化オフ環境から一気に半分以下になってしまいました。正直、ここまで劇的に変わるとは思っていませんでしたよ。

3.JaPonオン
1回目2回目3回目4回目5回目 
180559180558180591180576180555
6回目7回目8回目9回目10回目平均
180577180571180739180576180575180587.7
JaPon、速い!「オリジナルAPIよりも高速」を謳っているのは伊達じゃない!日本語化オフ環境と比べて約25%高速でした。CJKOSと比べると、約3倍のスピードで動いていることになります。うーん、素晴らしい。

4.JpFontKitオン
1回目2回目3回目4回目5回目平均
183521183632183643183457182514183353.4
実行回数が違うので参考程度ですが、僅差でJaPonを上回りました。

感想

JpFontKit > JaPon >> 日本語化オフ >> CJKOS
JpFontKitの辛勝、というところでしょうか。CJKOSは他の環境と比べて差が顕著でしたねぇ。いや、もちろんCJKOSにもいい所はたくさんあります(自分好みのフォントが使える、ShiftJISとEUCの自動判別、などなど)。それに、今回は無数にあるAPIの中で1つ検証しただけですから、「CJKOS、ダメじゃ~ん」と即断はできません。でも、オリジナルより25%高速で動くJaPonのすごさが際立つ結果となりましたねぇ。 また暇を見つけて、違うAPIでの検証をやってみたいと思います。
※環境ごとの結果にあまりばらつきがなかったので、10回もやらなくてよかったかなぁ。

TxtGetNextChar

いまいちよく分からないんですが、文字列から文字を拾ってくる命令みたいです。

検証用プログラムの概要

WinDrawCharsのときと同じように、10秒間命令を繰り返して何回実行できたかを表示します。もし必要な方は、↓からダウンロードできます。
JaPonTest01-2.zip
※ソースも入ってます。わけあってOnBoardCではなくPODS用になっていますが。
※「こんなプログラムでは検証にならん!こうやって書くんだ!」というご意見・ご指摘、お待ちしてます。

検証方法

検証は、こんな感じに行います。

結果

1.日本語化オフ
1回目2回目3回目4回目5回目平均
774608774202775413774599774132774590.8
これだけでは速いのやら遅いのやら。

2.CJKOSオン
1回目2回目3回目4回目5回目平均
777773777764776843777217778076777534.6
日本語化オフ環境より約4%高速です。WinDrawCharsと違って、ほとんど差が出ていませんね。

3.JaPonオン
1回目2回目3回目4回目5回目平均
780411780363780330780326780329780351.8
これまた日本語化オフ環境より高速ですが、約7%の伸び率に留まりました。

4.JpFontKitオン
1回目2回目3回目4回目5回目平均
775505775504775502775601775895775601.4
こちらも日本語化オフ環境より微妙に高速です。1%程度ではありますが。

感想

JaPon > CJKOS > JpFontKit > 日本語化オフ
となりましたが、あまり差はありませんでした。この命令に関しては、どの環境も体感できるほどの違いは出ないということでしょう。む、なんかあまり面白味のない結果になってしまったか…。

TxtCaselessCompare

文字列を比較する命令です。Addressの並び替えなんかで使ってるんですかね?

検証用プログラムの概要

TxtGetNextCharで使用したのと同じものです。

検証方法

検証方法もTxtGetNextCharのときと同様です。
(ソフトリセット後に5回実行した平均値)

結果

1.日本語化オフ
1回目2回目3回目4回目5回目平均
153764715417451538164154172115373571539326.8
値がとうとう100万を超えました。戦闘力がインフレしていくようで、楽しいですね。(え?)Palmにとって楽勝な処理なんでしょう。

2.CJKOSオン
1回目2回目3回目4回目5回目平均
625435625514625534625753625533625553.8
あらら。日本語化オフ環境の4割程度になってしまいました。

3.JaPonオン
1回目2回目3回目4回目5回目平均
127137812734291270498127104912710141271473.6
この検証を開始して初めて、日本語化オフがJaPonを上回りました。ちょっとびっくり。でも良く考えると、何もしてない日本語化オフが最速なのが普通なんですよね。

4.JpFontKitオン
1回目2回目3回目4回目5回目平均
121721012200721219294121779112190621218685.8
JaPonとあまり変わりませんでした。

感想

日本語化オフ >> JaPon > JpFontKit >> CJKOS
日本語化オフ環境が最速という、ある意味もっとも無難な結果に。やっぱり色々な命令で試してみないと、どの環境が最速かは決められませんね。

ただ、「速い」=「良い」と必ずしも言い切れるわけではありません。人によっては容量を食わない環境が望ましいでしょうし、価格を最優先とする場合もあるでしょう。それに「動作が速い」ということは「電池の消耗が速い」ことにつながるかもしれません(憶測ですが)。何が「良い」かは人それぞれ。一連の検証が、皆さんにとっての「良い」日本語化ソフトを判断する一助になれば、幸いです。