とりあえず完成!
でも10Kbyteをちょっとオーバーしてます。
このままでは504iでなら動くけど、503iでは動きません。
地獄のダイエット開始。(目標:10,240byte)
ダイエット方針
・いらない変数は削る
・似たメソッドはまとめる
・1箇所からしか呼ばれていないメソッドは展開する
・定数はfinalつけると1バイトづつ小さくなる
・単純にコード短くするより冗長なコードのほうがjarに圧縮したとき小さくなるときがある
・昔は式を計算済みの値にする(例.「i=16*8;」→「i=128;」)と小さくなったそうだけど、いまは意味無し
10588 (使用前)
10546
10498
10434
10432
10434
10431
10379
10367
10338 (使用後)
そろそろきつくなってきた。
グラフィックリソースを起動後に別口でダウンロードしてスクラッチパッドに置くという手もあるけど、つかっているグラフィックは500byteも無いので、コードが増える分不利になる。
あとは、変数などのシンボル名を短くしたりとか、定数シンボルを数字に置き換えたりとか不毛な作業にとりかかるかなあ。
でもまだやれることはあるはず。
アレゲはアレゲ以上のなにものでもなさげ -- アレゲ研究家
条件分岐 (スコア:0)
#JAVAにgotoはあったっけ?
Re:条件分岐 (スコア:1)
ifのバリエーションでのサイズ違い試してみます。
じつはこれの適用前に大きな無駄(使っていないswitchのcase)をみつけたので、目標達成できました。
10244
10218 (目標達成)
10187
10193
10204 (リバウンド)
Re:条件分岐 (スコア:0)
最近では、S5 Systems [s5systems.com]のJPrestoあたりが
結構できがいいようです。他には、
Retrologic [retrologic.com]のRetroGuard
cocoa氏のJava Blender [u-tokyo.ac.jp]
Hidetoshi Ohu
Re:条件分岐 (スコア:1)
RetroGuardかけるとpreverifyしなおさないといけないのが面倒っぽかったので試していませんでしたが、S5 SystemsはJ2ME対応を謳っているのでこの辺が自動化されてるといいなあ。
# 作ったiアプリは N503iでも動きましたが、遅い~。N504iの70%くらいの速度です。N504iでもギリギリ耐えられる速度だと思っていたのに…
# 再描画箇所を最適化してなんとかするか~