javascriptネイティブとjQueryでCSSの要素チェックのベンチーマーク
jQueryには,$(hoge).css()という便利なAPIがあるんですが,
どうにもjavascriptネイティブと比べてかなり遅い?という感じがしたので
どのくらい遅いのか測ってみます.
環境
OS | Windows Vista |
---|---|
CPU | AMD Athlon(tm) 64 X2 Dual Core Processor 4400+ 2.30GHz |
メモリ | 4.00GB |
内容
javascriptネイティブな書き方
document.getElementById("hoge").style.color
結果
javascriptネイティブな書き方の方がsafariでは3,4倍速く,
javascriptネイティブな書き方の方がFireFoxでは10倍近く速い.
使用ブラウザ
以下続きにて
(msec) | IE | FifeFox | safari | Chrome | Opera |
---|---|---|---|---|---|
ソース1 | 16266 | 474 | 314 | 180 | 936 |
ソース2 | ※ | 4619 | 1212 | 2188 | 2758 |
ソース3 | 3383 | 300 | 211 | 108 | 579 |
ソース4 | 20167 | 3129 | 601 | 1484 | 2035 |
※処理速度が遅すぎて測定不能
ソース1
var t1=new Date(); // 計測開始
var y=10000;
while(y)
if(document.getElementById("hoge").style.color == "red" || document.getElementById("hoge").style.color == "rgb(255, 0, 0)" || document.getElementById("hoge").style.color == "#ff0000")
y--;
var t2=(new Date())-t1; // 計測終了
ソース2
var t1=new Date(); // 計測開始
var y=10000;
while(y)
if($("#hoge").css("color") == "rgb(255, 0, 0)" || $("#hoge").css("color") == "#ff0000" || $("#hoge").css("color") == "red")
y--;
var t2=(new Date())-t1; // 計測終了
ソース3
var t1=new Date(); // 計測開始
var y=10000;
var checkColor = document.getElementById("hoge").style;
while(y)
if(checkColor.color == "red" || checkColor.color == "rgb(255, 0, 0)" || checkColor.color == "#ff0000")
y--;
var t2=(new Date())-t1; // 計測終了
ソース4
var t1=new Date(); // 計測開始
var y=10000;
var checkColor = $("#hoge");
while(y)
if(checkColor.css("color") == "rgb(255, 0, 0)" || checkColor.css("color") == "#ff0000" || checkColor.css("color") == "red")
y--;
var t2=(new Date())-t1; // 計測終了