uupaa-selector 2.0 できました。

2008-11-23追記: http://app.blog.livedoor.jp/sourcewalker/tb.cgi/51408207 で紹介されていたので、peppy と sizzle を追加
peppy と sizzle がキャッシュを使ってて(なんかズルイ)ので、彼らに負けじと謎の技術を惜しげもなくぶち込んでみた。

JavaScript修行中の身なので、より良い方法を思いつくたびにスクラップ&ビルドして効果を試してます。そんなこんなで、uupaa-selectorをゴニョゴニョやっているうちに、さらにちょっとだけ速く小さくなりました。
# あとIE8のIE8モードでも動作するようになりました。

過去の version との速度比較

V2.0rc1でキャッシュを導入しました。

PC1(Windows XP)
Browser 10/1版 10/2版 V1.4 V1.5 V2.0rc0 V2.0rc1(cache on) V2.0rc1(cache off)
IE6 3161 317 212 204 176 32 188
Firefox2.0.0.7 322 314 276 52 283
Firefox3.0.3 173 175 141 -61 138
Firefox3.1b1(*) 76 88 67 52 52
Opera9.27 176 164 136 32 146
Opera9.61 88 80 100 80 88
Safari3.1(*) 12 8 8 8 8
Chrome(*) 55 53 53 57 53
Total 1114 1086 957 252 956
速度向上 100% 103% 114% 774% 114%

(*) querySelectorAll() を使っています。

PC2(Windows Vista)
Browser V1.4 V1.5 V2.0rc0 V2.0rc1(cache on) V2.0rc1(cache off)
IE7 176 160 124 12 132
IE8 120 92 80 8 86
Total 296 252 204 20 218
速度向上 100% 115% 131% 932% 130%

単位はms。±10msは測定誤差と思ってください。


SlickSpeed で複数のライブラリを同時に計測すると、干渉しておかしな値が出たり、他人の値を拾っちゃうようなので、あくまで目安程度に見てください。
Firefox3.1, Safari3, Chrome には querySelectorAll() が実装されているため速度の比較になりません。IE6またはIE7で見ると分かりやすい結果がでます。

他のライブラリの精度(再掲)

以下のリンクをクリックすると、CSS3.info の簡易テストが始まります。

Library precise1(css.info) 仕様準拠(精度)
uupaa-selector-2.0 582/582 100%
DOMAssistant-2.7.4 531/582 91%
Dojo-1.1.1 412/582 70%
Ext-2.2 370/582 64%
jQuery-1.2.6 395/582 68%
Prototype-1.6.0 550/582 95%
peppy-0.1.2 414/582 71%
sizzle-0.1 400/582 69%

Firefox3.0.3 だとこうなります。


CSS3.info の簡単なテストで満点を取れるようになったら、いよいよW3Cの互換性テストが控えているのですが、

これらを実施してみたところ、 uupaa 以外のライブラリは、さらに赤く染まります。

これだけは言わせてほしい。

「速度」はどうでもよくって、まずは「精度」
なんもチェックしない、おバカなコード(↓)が常に最速なのは当然。精度なくして速度を語るなかれ。

/*
 if (境界チェック) {
   ... たくさんの処理 ...
 }
 */

日本人が、技術力で外国人に負けるわけにはいかんのですよ。遊びといえどもね。

uupaa-selector2.0は、師走にリリースする予定です。