本項目は、当分 実用にならないと思います。
アイデアを思いついたら実験するという感じです。
参考程度と思ってください。
−−
高速化実験(iモード用)
履歴
2011-2-26 初版
2011-3-6 画像割付高速化
2011-3-24 ミサイルオブジェクト追加(サンプル4)
2011-4-5 ミサイル移動の細かさを倍にしたサンプル追加(サンプル4)
2011-4-25 RPG風のサンプル追加(サンプル5)
2011-5-8 MML音楽演奏のサンプル追加(サンプル6)
ここでは、spalmの高速化を考えます。
全体的な高速化は 実力的にも無理なので、複数の命令を1度に実行するような、
新しい命令を追加する アプローチをとることにします。
(文字列配列の一括表示等)
1.1.実行時間測定 他
上記実験版で追加した命令を使って、サンプルプログラムを書き換えて、
変更前と変更後の メインループのループ1回分の実行時間を測定します。
また、いくつかの新機能についても サンプルプログラムを作成して 動作を確認します。
サンプル1 ドライブゲーム
実行サンプル1101(変更前)(ソースコード)
実行サンプル1102(変更後)(ソースコード)
実行サンプル1103(変更後+画像割付)(ソースコード)
サンプル2 回転障害物ゲーム
実行サンプル1201(変更前)(ソースコード)
実行サンプル1202(変更後)(ソースコード)
サンプル3 増殖ゲーム
実行サンプル1301(変更前)(ソースコード)
実行サンプル1302(変更後)(ソースコード)
サンプル4 ミサイル弾幕のようなもの
実行サンプル1401(ミサイルオブジェクト使用)(ソースコード)
実行サンプル1402(ミサイル移動の細かさを倍にした)(ソースコード)
サンプル5 RPG風のサンプル
実行サンプル1501(split,trim,randint等使用)(ソースコード)
(RPG風のサンプルの操作説明)
サンプル6 MML音楽演奏のサンプル
実行サンプル1601(addmml等使用)(ソースコード)
1.2.結果
確認機種 SH-06B
サンプル1
実行サンプル1101(変更前)
平均:24msec程度
最小:22msec程度
最大:36msec程度
実行サンプル1102(変更後)
平均:14msec程度
最小:13msec程度
最大:25msec程度
実行サンプル1103(変更後+画像割付)
平均:18msec程度
最小:16msec程度
最大:36msec程度
サンプル2
実行サンプル1201(変更前)
平均:40-200msec程度
最小:40msec程度
最大:240msec程度
実行サンプル1202(変更後)
平均:30-50msec程度
最小:30msec程度
最大:80msec程度
サンプル3
実行サンプル1301(変更前)
平均:65-100msec程度
最小:65msec程度
最大:330msec程度
実行サンプル1302(変更後)
平均:55-90msec程度
最小:55msec程度
最大:150msec程度
サンプル4
実行サンプル1401(ミサイルオブジェクト使用)
平均:30msec程度
最小:19msec程度
最大:50msec程度
実行サンプル1402(ミサイル移動の細かさを倍にした)
平均:30msec程度
最小:21msec程度
最大:60msec程度
サンプル5〜6
新機能の動作を確認
1.3.まとめ
サンプル1〜3について、変更前と変更後の実行時間の測定を行った。
描画が多くなるようなケースでは、2〜3倍程度の高速化がはかれた。
描画が少ない場合の平均速度については 若干の高速化にとどまった。
体感的には、サンプル2で障害物が増えた場合の高速化が一番大きく感じられた。
また、サンプル1についても高速化が感じられた(操作が難しい)。
サンプル3については それほど差を感じなかった。
また、サンプル1では別途、画像割付版を作成した。文字に画像を割付可能とすることで、
プログラムを大きく変更せずに 画像を表示できるようになった。
(しかし速度的には 変更後より若干遅くなった)
また、サンプル4〜6では、新機能を使用するサンプルプログラムを作成した。
ミサイルオブジェクト、データ処理、MML演奏等について、
実際に実機で動作することを確認した。
FrontPage
関数一覧
記号一覧
SPALM入門
作品集
自作関数活用術
ダウンロード先
うpロダ
wikiの使い方
SPALMまでの歴史
現行スレ