FireBugでプロファイルをとってみた
ネタとしては1年半前の流行なのかも知れないが,ようやく prototype.js の中身を読んでいる。これを機に,v.1.4 から最新の v.1.6 にバージョンアップ。ソースコードが整理されているだけでなく,速度の違いが体感できるくらい速くなっていておどろく。
イベント登録は Event.observe という便利関数が用意されていることを(いまさら)しる。
FirefoxのJavaScriptのプロファイルを見て思ったのは「.」演算子を介したハッシュのアクセスが,思ったよりも遅いということ。
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 をエミュレートしているけど,あれって実はすんげー遅いんじゃないのかなぁ。
追記:って思ってサンプルコード書いて追実験してみたんだけど,遅さを再現できず。う〜む。見なかったことにしよう。