Array のプッシュメソッドとシフト解除メソッドのパフォーマンスの比較分析_JavaScript スキル
May 16, 2016 pm 06:09 PM
array
push
原理から、シフト解除の効率が低いことがわかります。その理由は、要素を追加するたびに、既存の要素が 1 つ下の位置に移動するためです。しかし、効率の差はどれくらいあるのでしょうか?以下でテストしてみましょう。
テスト環境の主なハードウェア: CPU T7100 (1.8G)、メモリ 4G DDR2 667、ハードディスク 5400 rpm。主なソフトウェア: オペレーティング システムは Windows 7、ブラウザは Firefox 3.6.9 です。テストコード:
コードをコピー コードは次のとおりです:
var arr = [ ], s = new Date;
// (var i = 0; i arr.push(i)
コンソールのパフォーマンス テストをプッシュします。 log( new Date - s);
s = new Date;
arr = [ ];
// unshift パフォーマンス テスト
for (var i = 0; i arr.unshift(i);
}
console.log( new Date - s);
このコードは、1 回実行した後、プッシュ操作とシフト解除操作をそれぞれ 50,000 回実行します。 , 結果は次のようになります:
1152
アンシフトはプッシュよりもほぼ 100 倍遅いことがわかります。したがって、特に大きな配列の場合は、unshift を慎重に使用する必要があります。では、シフト解除効果を達成する必要がある場合、他の方法はあるのでしょうか?答えは「はい」です。
配列には、配列を反転できる reverse というメソッドがあります。まずプッシュを使用して配列に入れる要素を追加し、次に再度リバースを実行してシフト解除効果を実現します。例:
コードをコピー コードは次のとおりです。
for (var i = 0) ; i < 50000; i ) { arr.push(i);
逆のパフォーマンスはどうでしょうか?もう一度実行します:
逆のパフォーマンスはどうでしょうか?もう一度実行します:
コードをコピーします
コードは次のとおりです: var arr = [ ], s = 新しい日付; for (var i = 0; i arr.push(i);
arr.reverse(); .log( new Date - s) ;
結果は次のとおりです:
12
逆のパフォーマンスが非常に高く、追加の消費がないことがわかります。安心して使えます。
結果は次のとおりです:
12
逆のパフォーマンスが非常に高く、追加の消費がないことがわかります。安心して使えます。
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

人気の記事
スプリットフィクションを打ち負かすのにどれくらい時間がかかりますか?
3週間前
By DDD
レポ:チームメイトを復活させる方法
3週間前
By 尊渡假赌尊渡假赌尊渡假赌
ハローキティアイランドアドベンチャー:巨大な種を手に入れる方法
3週間前
By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.説明されたエネルギー結晶と彼らが何をするか(黄色のクリスタル)
1週間前
By 尊渡假赌尊渡假赌尊渡假赌

人気の記事
スプリットフィクションを打ち負かすのにどれくらい時間がかかりますか?
3週間前
By DDD
レポ:チームメイトを復活させる方法
3週間前
By 尊渡假赌尊渡假赌尊渡假赌
ハローキティアイランドアドベンチャー:巨大な種を手に入れる方法
3週間前
By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.説明されたエネルギー結晶と彼らが何をするか(黄色のクリスタル)
1週間前
By 尊渡假赌尊渡假赌尊渡假赌

ホットな記事タグ

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック
Gmailメールのログイン入り口はどこですか?
7281
9


Java チュートリアル
1622
14


CakePHP チュートリアル
1341
46


Laravel チュートリアル
1258
25


PHP チュートリアル
1205
29



PHPのarray_merge_recursive()関数を使用するシンプルで明確な方法

PHP で array_combine 関数を使用して 2 つの配列を結合して連想配列にする方法

Java での ArrayStoreException の一般的な原因は何ですか?

PHP の array_change_key_case() 関数の使用方法の概要
