9

私たちの会社では、すべてのJavascriptファイルを1つの大きな(約700kbですが、成長している)縮小およびgzip圧縮されたJavascriptファイルに結合します。ページごとに1つの大きなJavascriptファイル(縮小およびgzip圧縮)を使用する場合と、ページごとに1つずつ複数のJavascriptファイルを使用する場合のパフォーマンスの違いを評価しようとしています。

明らかな違いは、大きなJavascriptファイルは、最初のページリクエストで読み込まれた後、ブラウザでキャッシュでき、その後はオーバーヘッドがほとんど発生しないことです。複数のjsファイルを使用する場合、異なるページごとに少なくとも1つのキャッシュされていないgetリクエストがあります。したがって、最初の最初のページの読み込みが遅いことと、連続する最初のページの読み込みが遅いことを交換します。

遅い初期ページの読み込み(1つの大きなJavascriptファイルを使用)がいつ問題になり、結合されたファイルを小さなファイルに分割してビルド手順を変更する作業を正当化するのかを知るために、どのくらいの時間がかかるかを調べたいと思いますコードが解析されるのにかかるので、ロードと解析の合計時間を見積もることができます。

これまでの私のアプローチは、現在の時間を要するテストページにスクリプトタグを追加し、Javascriptを使用して大きなスクリプトを追加し、その後、次のように時間を測定することでした。

var head = document.getElementsByTagName('head')[0];
var script = document.createElement('script')
script.setAttribute('type', 'text/javascript');
script.src = 'path/700kbCombineFile.js';
start_time = new Date().getTime();
head.appendChild(script);

700kbCombineFile.jsの最後に、次のように追加しました。

console.log(new Date().getTime() - start_time)

次に、firebugから取得したネットワーク転送時間を差し引くと、700 kbファイルの場合は約700ミリ秒、300kbファイルの場合は約300ミリ秒を受け取ります。

このアプローチは理にかなっていますか?なぜだめですか?これを行うためのより良い方法/ツールはありますか?

4

2 に答える 2

6

おもう console.time("Parsetime")

console.timeEnd("Parsetime")

日付オブジェクトよりも正確な測定値を提供します。
JavaScript の時間精度に関する記事

于 2012-07-12T13:53:59.103 に答える
3

JavaScript の解析にかかる時間は、ブラウザーによって大きく異なります。

あなたが持っているのは、解析時間を測定するために私が考えることができる最良の方法ですが、どのアプローチがより効果的であるかを判断するための最良の測定値であるかどうかは疑問です.

個人的には、ページがリクエストされloadてからイベントが発生するまでにかかった時間を考慮して、どのアプローチを採用するかをより適切に測定します。window

ページのダウンロードにかかる時間重要です。最初の読み込み後にファイルが常にキャッシュされるのは、完璧な世界でのみ真実です。

于 2012-07-12T13:54:13.620 に答える