音の鳴るブログ

鳴らないこともある

Timbre.js のコンパイラにインライン関数を展開する機能を追加した。

複数の JavaScript を結合して一つの JavaScript を作っているのだけど、その結合処理のときにインライン関数の定義があれば置き換えるようにしてみた。

ただし、C++の inline みたいに良く出来たものではなくて、正規表現とテンプレートで置換するみたいなものなので、インライン展開しないとき用の元のコードと出来上がりのコードに合わせたテンプレートを書かないといけなくて書くときの効率が悪いし、だいたい間違う。

インライン関数にすると、関数呼び出しのオーバーヘッドが抑えられるので処理スピードが良くなる。そのかわりにコードサイズが大きくなる。

異常な回数を回す for の中で使えば効果絶大なのだけど、今回は for の外側ばかりだったのであまり意味なくて、1000行くらい増えてコードサイズが大きくなっただけのような感じがした。

ちょっと思いついたからやってみたけど、後で削除するかもしれない。