最適化をミスる

  • 更新日:
  • 大学生活

今日は、最近思いついた最適化の方法を試してみようと思って、ガリガリプログラムを書いてました。結論を先に言ってしまえば、見事に失敗・・・。

Javaではインスタンスを作成するのは、やや重たい処理に含まれます。インスタンスを作成するためにメモリから領域を切り出してきて、フィールドやメソッドがどんなんかを書き出して・・・、などとC言語ではわりと面倒なことを「new ClassName()」と書くだけでできてしまいます。オブジェクト指向万歳!

裏で、こういう作業をしてるので、できればインスタンスを作成しないようにするために、再利用できるものはしてみようと考えました。HashMapを使って、今まで生成した分をためておいて、使えるやつは使うって感じです。比較的単純な実装だったんで、もしかするとうまくいくかな〜と思ったんですが・・・。

結果的には2倍ほど遅くなりました^^;原因を考えてみると、実は再利用できるインスタンスと新たに作らないといけないインスタンスの比が相当悪かったみたいです。ほとんどのインスタンスは1度使うだけって感じで、貯めてるだけ効率が悪くなったってことでした。

今回の教訓は、最適化するなら相手をよく知ってから。扱うデータの内容がだいたい分かっていれば、それに適したデータ構造やアルゴリズムも必然的に決定できます。今回は、思いつきだけでやってしまったのがダメだったってことですね。

Track Back

Track Back URL

コメントする

公開されません

refresh captcha

画像の中に見える文字を入力してください。

このページの上部へ

About

tetsuの日記・雑記です。
日々経験したことを記録していきます。

広告

サイト内検索

最近のピクチャ

  • リアディレーラ

月別アーカイブ

最近のコメント