それマグで!

知識はカップより、マグでゆっくり頂きます。 takuya_1stのブログ

習慣に早くから配慮した者は、 おそらく人生の実りも大きい。

バイトコードコンパイル

Pythonインタプリタは、ソース中間言語にコンパイルしてくれる。全て自動で。余り深く考える必要はない。(今のところ)

  • 中間言語にコンパイルされたソースは*.pycでソースと同じフォルダに作成される
  • 中間言語にコンパイルされたと言っても、処理速度の最適化は行っていない*1
  • 中間言語にコンパイルされたソースはロードが早くなる。*2
  • 最適化するときは -OO や-O フラグをつけて実行する
    • 2.4での現状はassertを除去する。
    • 2.4での現状は__doc__(docstring)を除去する程度
    • 余り高速化は望めない
    • ただし、バイトコードなのでソースを隠蔽するのに使えるよ

PHPのZend_Optimizer程ではないが、APCのキャッシュ機構に近いことは出来るよ。ってこと。

*1:Javaだとjavac.exeが中間言語にコンパイル時に、かなりのソース最適化を行う。Stringやループ処理。等々。

*2:たぶんsyntax checkをスルーするからだと思う