JavaScriptプログラムを作成するときは、特定のコードの実行時間を知る必要がある場合は、Console.time()を使用できます。ただし、より複雑なロジックでJavaScriptプログラムを分析し、パフォーマンスボトルネックを見つけようとする場合、Console.time()は適用されません - より複雑なロジックを使用したJavaScriptプログラムの操作の詳細な分析は、多数のConsole.time()ステートメントを挿入することを意味します。複雑なロジックを使用したJavaScriptプログラムのチューニングの場合、正しい方法はconsole.profile()を使用することです。
ブラウザのサポート
Firefox、Google Chrome、およびSafariは、FireBugプラグインをインストールし、すべてサポートコンソール()ステートメントをサポートし、IEとOperaの最新バージョンもプロファイル機能を提供します。いくつかの主要なブラウザでのconsole.profile()の使用は似ています。この記事では、firebugでconsole.profile()の使用のみを紹介します。注目に値することの1つは、FireBugコンソールを使用してJavaScriptの実験コードを直接記述する場合、Console.profile()が無効であることです。
console.profile()の使用
console.profile()の使用は非常にシンプルです。プロファイルを起動する必要があるconsole.profile()を挿入し、プロファイルを終了するconsole.profileand()を挿入します。次のコードは例です。
コードコピーは次のとおりです。
function dotask(){
Dosubtaska(1000);
Dosubtaska(100000);
dosubtaskb(10000);
dosubtaskc(1000,10000);
}
function dosubtaska(count){
for(var i = 0; i <count; i ++){}
}
function dosubtaskb(count){
for(var i = 0; i <count; i ++){}
}
function dosubtaskc(countx、郡){
for(var i = 0; i <countx; i ++){
for(var j = 0; j <郡; j ++){}
}
}
console.profile();
dotask();
console.profileand();
dotask()関数を実行する前に、console.profile()を実行します。 Dotask()関数が完了した後、Dotask()関数の実行プロセス中の詳細情報を収集できます。 FireBugのコンソールで見ることができます:
結果から、プロファイル時間は合計101.901msであり、5つの関数呼び出しが含まれていることがわかります。結果のデフォルトタイトルは「プロファイル」です。これは、パラメーターをConsole.profile()関数に渡すことでカスタマイズできます。たとえば、console.profile( "テストプロファイル")を使用すると、このプロファイルのタイトルを結果の「テストプロファイル」に変更できます。これは、複数のプロファイルプロセスが同時に実行される場合に特に役立ちます。特定のプロファイルの結果における各列の意味は、次のとおりです。
1。関数。関数名。
2.コール。通話数。たとえば、上記の例では、dosubtaska()関数が2回実行されます。
3.パーセント。この関数呼び出しによって全体的な時間に消費される時間の割合。
4.タウン時間。他の機能を呼び出すのにかかった時間を除く、関数自体が取る時間を除く。たとえば、上記の例では、Dotask()は間違いなく実行に長い時間がかかりましたが、他の機能を呼び出すのに時間がかかったため、時間はあまり時間がかかりませんでした。
5.時間。自分の時間とは対照的に、他の関数に要因を呼び出す場合、関数の時間のかかる計算の合計は考慮されません。上記の例では、dotask()関数は101.901msを実行します。時間と自分の時間については、結論を描くこともできます。時間が自分の時間よりも長い場合、他の機能への呼び出しが関数に関係しています。
6.AVG。計算式は次のとおりです。AVG=時間/呼び出し。上記の例では、Dosubtaska()関数は2回実行され、その合計時間は1.054msであったため、平均合計時間は0.527msでした。
7.分。この関数を呼び出すための最小時間のかかりません。たとえば、上記の例では、dosubtaska()関数が2回実行され、最小時間のかかる時間は0.016msを費やすのに時間がかかるコールです。
8.マックス。この関数を呼び出す最大時間。たとえば、上記の例では、dosubtaska()関数が2回実行され、その最大時間のかかるプロセスは、1.038ミリ秒を費やすのにもっと時間がかかったコールです。
9.FILE。関数が配置されているJSファイル。
FireBugでのプロファイルボタンの使用
console.profile()ステートメントをJavaScriptコードに挿入することに加えて、FireBugはページ内のJavaScriptコードを動的かつ実際にプロファイルするプロファイルボタンも提供します。ボタンの位置は次のとおりです。
プロファイルが必要な場合は、ボタンを押すことができ、次のページ操作がJavaScriptコードをトリガーした場合、FireBugはそれを記録します。プロファイルプロセスの最後に、もう一度ボタンを押すだけです。最終結果は、console.profile()ステートメントを挿入することで得られた結果と一致しています。