配列にアイテムを追加できる4つの方法間のパフォーマンスの比較:
インデクサーを使用して追加します
コードコピーは次のとおりです。
Console.time( "index");
var a = [];
for(var i = 0、l = times; i <l; i ++){
a [i] = i;
}
Console.TimeEnd( "index");
プッシュメソッドを使用します
コードコピーは次のとおりです。
Console.Time( "Push");
var a = [];
for(var i = 0、l = times; i <l; i ++){
a.push(i);
}
Console.TimeEnd( "Push");
concatメソッドを使用します
コードコピーは次のとおりです。
Console.time( "concat");
var a = [];
for(var i = 0、l = times; i <l; i ++){
A.CONCAT(i);
}
Console.TimeEnd( "concat");
concatメソッドを使用して、パラメーターは配列です
コードコピーは次のとおりです。
Console.time( "配列との触媒");
var a = [];
for(var i = 0、l = times; i <l; i ++){
A.concat([i]);
}
Console.TimeEnd( "配列との触媒");
時間を1億回に設定します:
コードコピーは次のとおりです。
インデックス:0.310ms
プッシュ:1.476ms
concat:8.911ms
配列とのコンタット:2.261ms
時間を100,000(100,000)に設定します:
コードコピーは次のとおりです。
インデックス:1.967ms
プッシュ:11.980ms
concat:70.410ms
アレイとの連結:28.292ms
時間を1000000(百万)に設定します:
コードコピーは次のとおりです。
インデックス:138.559ms
プッシュ:93.074ms
concat:608.768ms
アレイとの連結:243.371ms
時間を100,000(1000万)に設定します:
コードコピーは次のとおりです。
インデックス:1473.733ms
プッシュ:611.636ms
concat:6058.528ms
アレイとの連結:2431.689ms
要約します
この結論は、Chromeブラウザでのみ役立ちます
concatメソッドの実行効率は最も遅い
2つのconcatメソッドの引数伝送と比較して、受け入れられたパラメーターが配列である場合、実行効率は、アレイ以外として受け入れられているパラメーターの効率よりも高くなります。
ほとんどの場合、インデクサーの実行効率はプッシュ法の効率よりも高くなっています。
実行の数が増えると、インデクサーの実行効率はプッシュメソッドの実行効率よりも悪くなり始めます
ブラウザの比較
私には経験がないことを指摘してくれたネチズンに感謝しますので、ここにブラウザ間の水平比較があります
まず、concatメソッドを使用します。 IEとFirefoxでは、パラメーターは配列であり、実行効率は他のパラメーターよりも遅くなりますが、違いは大きくありません。
次に、インデックスとプッシュメソッドがconcatよりも高速であることが確かです。 IEでインデックスメソッドを使用することは、プッシュよりも常に高速です。 Firefoxでプッシュは少し優れていますが、違いは大きくありません
3つのブラウザ間のインデックスおよびプッシュメソッドの実行効率と比較して、Firefoxの実行効率はIEおよびChromeの実行効率よりもはるかに高くなっています。百万回で、基本的には10倍高速です。私は他の2つに比べて最も遅いです。
以下は数百万の結果です。
コードコピーは次のとおりです。
// firefox
インデックス:タイマーが開始されました
インデックス:229.79ms
プッシュ:タイマーが始まりました
プッシュ:205.12ms
concat:タイマーが開始されました
concat:2136.99ms
配列とのコンカット:タイマーが開始されました
アレイとの連結:2365.18ms
`` `
コードコピーは次のとおりです。
// IE
インデックス:2,533.744ミリ秒
プッシュ:3,865.979ミリ秒
concat:4,303.139ミリ秒
アレイとのコンタット:4,792.208ミリ秒
この記事は、JSのパフォーマンスを調査するためだけです。比較を通じて、JavaScriptに対する友人の理解を深めます。気に入っていただければ幸いです。