空想犬猫記

※当日記では、犬も猫も空想も扱っておりません。(旧・エト記)

FireBugでプロファイルをとってみた

ネタとしては1年半前の流行なのかも知れないが,ようやく prototype.js の中身を読んでいる。これを機に,v.1.4 から最新の v.1.6 にバージョンアップ。ソースコードが整理されているだけでなく,速度の違いが体感できるくらい速くなっていておどろく。

イベント登録は Event.observe という便利関数が用意されていることを(いまさら)しる。

FirefoxJavaScriptのプロファイルを見て思ったのは「.」演算子を介したハッシュのアクセスが,思ったよりも遅いということ。

for (var i = 0, row; row = this.rows[i]; ++i) {
  :
}

みたいなコードがあるときは this.rows を括り出して

var rows = this.rows;
for (var i = 0, row; row = rows[i]; ++i) {
  :
}

とするだけで体感できる速度の違いになる。動的な言語はこの辺,シビアに影響することを肝に銘じておいた方が良さそう。便利なんだか便利じゃないんだか。フレームワーク指向のJavaScriptライブラリは,ハッシュを使って namespace をエミュレートしているけど,あれって実はすんげー遅いんじゃないのかなぁ。

追記:って思ってサンプルコード書いて追実験してみたんだけど,遅さを再現できず。う〜む。見なかったことにしよう。