JAVAの最適化(3)

そもそも、なんでこんな最適化をやってるのか説明してなかった。
通常、DoCoMoならGIF、au,VodafoneならPNGの画像を使って、画面に描画します。
しかし、内部で持っているイメージのフォーマット(デコードされた後のイメージ)が公開されていないので、反転や回転をしたい場合は、画像を操作するAPIを利用しなければなりません。
それなのに、そういったAPIは、比較的新しい機種でないと使用できないのです。いや、反転や回転のAPIって聞いたことがないので、比較的どころじゃないかも。
まあ、そういうことなので、GIFやPNGの画像を自前でデコードして、そのデコードされたイメージに対して反転やら回転やらをして、またそれを自前でGIFやPNGエンコードするわけです。
……んなアホな(;´Д`)
まあ、そのエンコードしたデータでcreateImage()をすると、あら不思議、反転や回転された画像の出来ました〜ヽ(´ー`)ノ
作ったのは自分じゃないんですけどね(;´Д`)
で、このときに問題になったのが、
遅い
んでもって、
容量がでかい
ということです。
そのプログラムは、ほんとじゃばじゃばしてる(?)プログラムなので、内部クラスやら何やら使われていて、メソッドの呼び出しが多く、容量もかなり取っているのです。
なので、自分が携帯向けにいろいろといじり倒している訳なんですよ。


クラスを消して、メソッドを最小限にして、グローバルなよく使われる変数はローカル変数にしたり、特に高速化をしたい変数はプライム変数に割り当てたり、そもそもアルゴリズムからごっそり変更したり……。


とりあえず、どうやってすれば高速になるのか、というのを実測してないので、まだ何とも言えません。
なので、実測が終わってからゆっくり結果を書いていこうと思います。