[PR]テレビ番組表
今夜の番組チェック

Mouse's Monologue - Palm

マウスの独り言 > Palm > JaPonの動作速度検証

.: JaPonの動作速度検証 :.

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

WinDrawChars

画面に文字を書く命令。
http://www.palmos.com/dev/support/docs/palmos/PalmOSReference/Window.html#1013424
まずはこれから、いってみましょう。

【検証用プログラムの概要】
今回用意したプログラムは、こんな動作をします。
・WinDrawCharsを使って、画面左上に文字を書く。
・10秒間、ひたすら文字を書き続ける。
・10秒間で何回文字を書いたか、を表示する。→数字が大きい方が高速
OnBoardCで生成されるスケルトンを、ちょこちょこといじりました。
もし必要な方は、↓からダウンロードできます。
JaPonTest01.zip
※私が使っているヘッダファイルも入ってますけど、今回のプログラムには不要な記述も入ってます…。
※「こんなプログラムでは検証にならん!こうやって書くんだ!」というご意見・ご指摘、お待ちしてます。

【検証方法】
検証は、こんな感じに行います。
・手持ちの日本語化ソフト(JaPon v1.0i、CJKOS v4.621、JpFontKit評価版)がオンの状態と、全てオフの状態、あわせて4種類の環境で検証。
・検証機:Tungsten T3(OS5.2.1)
・なるべく公平な状態を作るため、4環境ともソフトリセット後に検証する。
・TapPop等の常駐するアプリが動いている気がするけど、とりあえずそのままで(笑)
・10回実行した結果の平均値で判断する。

【結果】
1.日本語化オフ

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

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

3.JaPonオン
1回目2回目3回目4回目5回目 6回目7回目8回目9回目10回目平均
180559180558180591180576180555 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

いまいちよく分からないんですが、文字列から文字を拾ってくる命令みたいです。
詳しく知りたい方は
http://www.palmos.com/dev/support/docs/palmos/PalmOSReference/TextMgr.html#1122131
上記リンクからどうぞ。英語です。

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

【検証方法】
検証は、こんな感じに行います。
・手持ちの日本語化ソフト(JaPon v1.0i、CJKOS v4.621、JpFontKit評価版)がオンの状態と、全てオフの状態、あわせて4種類の環境で検証。
・検証機:Tungsten T3(OS5.2.1)
・なるべく公平な状態を作るため、4環境ともソフトリセット後に検証する。
・TapPop等の常駐するアプリが動いている気がするけど、とりあえずそのままで(笑)
・5回実行した結果の平均値で判断する。

【結果】
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の並び替えなんかで使ってるんですかね?
http://www.palmos.com/dev/support/docs/palmos/PalmOSReference/TextMgr.html#1120896

【検証用プログラムの概要】
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
日本語化オフ環境が最速という、ある意味もっとも無難な結果に。
やっぱり色々な命令で試してみないと、どの環境が最速かは決められませんね。

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

Copyright(C) 2000-2005 alg, all rights reserved.
alg_dot_info_atmark_gmail_dot_com