ロジック高速化の処方箋 for OO言語

1) オブジェクトの生成(取得)回数を減らす。
 1-1) 生成(取得)後、変更されることのないオブジェクトは一度だけ生成
   (取得)する。
   1-1-1) 複数のメソッドで利用され、そのオブジェクトの生成が
      所属するクラスのプロパティに左右されない場合、
      クラス(静的)変数にする。
      (Rubyの場合、定数でも可)
      ※Javaの場合、埋め込み文字列リテラルについては
      コンパイラがクラス(静的)変数相当に変換したバイトコード
      を生成します。
      (Javaの場合の場合、Stringクラスはimmutableなので可能)
   1-1-2) 複数のメソッドで利用され、そのオブジェクトの生成が
      所属するクラスのプロパティに左右される場合、
      インスタンス変数にする。
 1-2) 一時(使い捨て)オブジェクト・一時(使い捨て)変数は再利用する。
   1-2-1) 複数のメソッドで同じ用途の一時オブジェクトがある場合、
     インスタンス変数に格納する。一度だけオブジェクトを
     生成・格納、後は(初期化し)再利用する。
     ※オブジェクトの初期化よりもオブジェクトの生成に時間の
     掛かる場合
2) 生成(or取得)に時間の掛かるオブジェクトは生成(取得)後、再利用する。
 2-1) キャッシュする
    →リファレンス(ポインタ)をハッシュ等に格納し保持する。
 2-2)生成よりも取得に時間の掛かるオブジェクトは、複製(copy)する。
    →全てを深いcopyにすると低速になるので、浅いcopyとの併用を
     考える。


推敲中...。