さて、やっつけ仕事でJavaScript-XPath を jQuery で使えるようにしてみたのだが、コレをどんなときに使おうか?と思い、とりあえずベンチマークを取ってみることにした。
使ったツールは SlickSpeed Selectors Test。
Prototype, jQuery, mootools, Ext JS, js of K, cssQuery, findCSS 等の JavaScript framework それぞれとの比較テストを行う。
他の framework との比較のため、CSS セレクタを XPath式に変換して JavaScript-XPath に渡しているが、これは Piro さんが公開している selector.js を利用している。
各ブラウザでのベンチマーク結果。
IE6 と Fifrefox 2 以外は、VMWare Player 上の仮想マシンで計測しています。
prototype 1.6.0 |
jQuery 1.2.1 |
XPath for jQuery 0.1.2 |
MooTools 1.2dev |
ext 2.0 RC 1 |
js of K | cssQuery 2.02 |
findCSS | ||
---|---|---|---|---|---|---|---|---|---|
IE 6 | error | 2 | 0 | 0 | 1 | 0 | 0 | 1 | 10 |
final time | 3529 | 2138 | 28681 | 2697 | 851 | 860 | 13500 | 13094 | |
IE 7 | error | 2 | 0 | 0 | 1 | 0 | 0 | 1 | 10 |
final time | 1939 | 1234 | 16041 | 1689 | 414 | 460 | 9415 | 9645 | |
Firefox 2 | error | 0 | 0 | 0 | 1 | 0 | 0 | 1 | 7 |
final time | 314 | 797 | 108 | 264 | 484 | 156 | 8841 | 475 | |
Safari 3 for Win |
error | 2 | 0 | 0 | 1 | 0 | 0 | 1 | 7 |
final time | 631 | 310 | 8 | 104 | 76 | 16 | 1393 | 352 | |
Opera 9.2 | error | 0 | 0 | 0 | 1 | 0 | 0 | 1 | 7 |
final time | 224 | 469 | 88 | 224 | 254 | 72 | 2180 | 392 | |
合計 | error | 6 | 0 | 0 | 5 | 0 | 0 | 5 | 41 |
final time | 6637 | 4948 | 44926 | 4978 | 2079 | 1564 | 35329 | 23958 |
※単位は ms
速いとは聞いていましたが、Ext.js の DomQuery が、ここまで速いとは思わなかった。
浮気するかも 😛
ベンチマークは以下から。