javascriptネイティブとjQueryでDOM要素のベンチマーク
最近になって,ようやく処理速度が重要?なプログラム書く必要が出てきたので,調べてみる.
こういう方法もあるよ,というのあったら教えてください.
環境
OS | Windows Vista |
---|---|
CPU | AMD Athlon(tm) 64 X2 Dual Core Processor 4400+ 2.30GHz |
メモリ | 4.00GB |
内容
javascriptのネイティブな書き方とjQueryの提供するAPIで速度計測.
input要素から,値を取得するのはどれが速い?
ソース1〜3はおまけ.
4〜7までが本番です.
結論
速度が欲しくて,かつ現実的なソースはソース4かな?
使用ブラウザ
以下続きにて
(msec) | IE | FifeFox | safari | Chrome | Opera |
---|---|---|---|---|---|
ソース1 | 20 | 1 | 1 | 1 | 1 |
ソース2 | 38 | 8 | 10 | 35 | 8 |
ソース3 | 34 | 9 | 10 | 35 | 7 |
ソース4 | 1929 | 60 | 105 | 108 | 90 |
ソース5 | 5863 | 540 | 310 | 414 | 339 |
ソース6 | 4791 | 98 | 131 | 140 | 214 |
ソース7 | 17212 | 1733 | 900 | 936 | 836 |
ソース1
var t1=new Date(); // 計測開始
var x=1;
var y=10000;
while(y)
y-=x;
var t2=(new Date())-t1; // 計測終了
ソース2
var t1=new Date(); // 計測開始
var x=document.getElementById("hoge").value;
var y=10000;
while(y)
y-=x;
var t2=(new Date())-t1; // 計測終了
ソース3
var t1=new Date(); // 計測開始
var x=$("#hoge").val();
var y=10000;
while(y)
y-=x;
var t2=(new Date())-t1; // 計測終了
ソース4
var t1=new Date(); // 計測開始
var x=document.getElementById("hoge");
var y=10000;
while(y)
y-=x.value;
var t2=(new Date())-t1; // 計測終了
ソース5
var t1=new Date(); // 計測開始
var x=$("#hoge");
var y=10000;
while(y)
y-=x.val();
var t2=(new Date())-t1; // 計測終了
ソース6
var t1=new Date(); // 計測開始
var y=10000;
while(y)
y-=document.getElementById("hoge").value;
var t2=(new Date())-t1; // 計測終了
ソース7
var t1=new Date(); // 計測開始
var y=10000;
while(y)
y-=$("#hoge").val();
var t2=(new Date())-t1; // 計測終了