2011-06-30 3 views
1

、DOM-の操作にはJavaScriptを行うことができますどのくらいの平均システムでJavaScriptスピード

Processor: Core 2 Duo 2.2 GHz, Memory: 4 GB 

言いますか? 単純なjQueryアクションの時間(ミリ秒単位)を確認する方法はありますか?たとえばのように1:

$("#example").css("color","red"); 
+6

あなたが話しているブラウザによって、ブラウザの種類やバージョンによって大きく異なるJavaScriptのパフォーマンスに大きく左右されます。 –

答えて

3

ブラウザでサポートされている場合は、電話の前にconsole.profile();を使用し、その後にconsole.profileEnd();を使用できます。あなたはそれがかかった時間、あなたの出力、呼び出しの数などが表示されるはずです慰める

console.profile(); 
$("#example").css("color","red"); 
console.profileEnd(); 

Nettuts +チュートリアルhereを持っています。

1
var start = Date.now(); 

for(var i = 0; i < 10000; i++) { // any number of repetitions 
    $("#example").css("color", "red"); 
} 

var end = Date.now(); 
alert("It took " + Math.round((end - start)/10000).toString() + " milliseconds on average."); 

はあなたがそれを時間を計ると思います方法です。 DOMの動作についてはわかりません。 sizzle.jsソースを参照すると、IDセレクタ用に最適化され、ブラウザに依存することがわかっていますが、正確に何が行われているかを調べることができます。おそらく、彼らは一致するIDを見つけるまで、木を順番に横断します。それはかなり速いでしょう。

+1

あなたは決してただ一つの時間を過すことはありません。 –

+0

@Tomalak:良い点、修正済み。 – Ryan

+0

私は個人的にはDate.now()を使用しています.GCを取得する新しいオブジェクトを作成するという面倒な作業が必要なわけではありません。公正であるためには、最高でも5%のスピードアップと似ていますが、これらの点が合わさっています。 また、.toString() - 自動強制変換を呼び出す必要はありません! –

3

これらの決定を行うプロセスを「プロファイリング」と呼びます。 ChromeデベロッパーツールとFirefox用Firebugに組み込まれたプロファイラーを見つけることができます。