jsオブジェクトの読み取り速度の詳細な例

jsオブジェクトの読み取り速度の詳細な例

1. リテラルとローカル変数へのアクセスは最も高速ですが、配列要素とオブジェクト メンバーへのアクセスは比較的低速です。オブジェクト メンバーにアクセスすると、スコープ チェーンと同様にプロトタイプ チェーンが検索されます。

2. 見つかったメンバーがプロトタイプ チェーン内で深すぎる場合、アクセス速度が遅くなります。

したがって、検索回数とオブジェクト メンバーのネストの深さを最小限に抑えるようにしてください。

 // 2つのオブジェクトメンバー検索を実行する function hasEitherClass(element, className1, className2) {
    element.className === className1 || element.className === className2 を返します。
  }
  //最適化、変数が変更されない場合は、ローカル変数を使用して検索コンテンツを保存できます function hasEitherClass(element, className1, className2) {
    const currentClassName = 要素.className;
    currentClassName === className1 || currentClassName === className2 を返します。
  }

コンテンツ拡張子:

js オブジェクト操作のパフォーマンスの問題

1 文字列が長くなるほど、str+="xxx" を使用するのにかかる時間が大幅に増加します (ほぼ指数関数的に)。

2 オブジェクト配列に 400 個の要素しかない場合、各要素のプロパティとメソッドへのアクセス時間は、プロパティまたはメソッドごとに 1/4 ミリ秒に達します。要素に 10 個の属性がある場合、配列の走査には少なくとも 1 秒かかります。これはひどいことです。

3 ファイルシステム操作、特に書き込み操作は、書き込まれる文字列の長さの 2 乗にほぼ比例します。

4 文字列操作、特に置換、検索、比較を実行するために独自のメソッドを使用しないでください。

正規表現をよく理解していません。カスタム関数を使用する場合、上記の2)で述べたトラバーサルで、

カスタム関数は合計時間の最大 80% を占めます。

これで、js オブジェクトの読み取り速度の詳細な例に関するこの記事は終了です。js オブジェクトの読み取り速度の詳細については、123WORDPRESS.COM の以前の記事を検索するか、次の関連記事を引き続き参照してください。今後とも 123WORDPRESS.COM をよろしくお願いいたします。

以下もご興味があるかもしれません:
  • JavaScript事前解析の4つの実装方法の分析
  • js スコープ、スコープチェーン、事前解析
  • JSスコープと事前解析メカニズムの詳細な説明
  • 虫眼鏡ケースのJavaScriptオブジェクト指向実装
  • JavaScript でよく使われる 5 つのオブジェクト
  • JavaScript 事前分析、オブジェクトの詳細

<<:  MySQLの半同期の詳細な説明

>>:  ウェブ開発者はIE7とIE8の共存を懸念している

推薦する

フォームの読み取り専用属性と無効な属性についての簡単な説明

フォーム内の読み取り専用および無効な属性1. 読み取り専用:サーバーは、ユーザーがデータを変更するこ...

MySQL トランザクション分離はどのように実現されますか?

目次同時シナリオ書き込む読む読む読み取り-書き込みと書き込み-読み取りMySQL のロック行レベルロ...

Vue 親子コンポーネントの相互値の転送と呼び出し

目次1. 親が子コンポーネントに値を渡す2. 子コンポーネントが親コンポーネントに値を渡す3. 子コ...

MySQL ページング中にオフセットが大きすぎる場合の SQL 最適化の経験の共有

問題を見つけるコンテンツをリストで表示すると、リスト内のコンテンツの数は多いかもしれませんが、ユーザ...

シンプルな加算計算機の JavaScript 実装

この記事では、参考までに、加算計算機を実装するためのJavaScriptの具体的なコードを紹介します...

jsは赤い封筒の順序と量を指定するアルゴリズムを実装します

この記事では、指定された赤い封筒の順序と金額を実装するためのjsの具体的なコードを共有します。具体的...

標準的なHTMLの書き方は、Dreamweaverによって自動的に生成されるものとは異なります。

コードをコピーコードは次のとおりです。 <!--doctype はドキュメント タイプ htm...

Linux に Python 3.8.1 をインストールするための詳細なチュートリアル

この例では、Linux への Python 3.8 のインストールを例に挙げます。 1. 依存パッケ...

Vueタイマーの詳細な使い方

この記事では、参考までにタイマーを実装するためのVueの具体的なコードを紹介します。具体的な内容は次...

Nginx サービス クイック スタート チュートリアル

目次1. Nginx の紹介1. Nginx とは何ですか? 2. Nginx を使用する理由3. ...

Vueはフィルターを使用して日付をフォーマットします

この記事では、フィルターを使用して日付をフォーマットするVueの具体的なコードを参考までに紹介します...

XHTML 入門チュートリアル: リストタグの使用

リストは、類似または関連する一連の項目をリストするために使用されます。順序なしリスト(箇条書きリスト...

MySQL での Truncate の使用法の詳細な説明

序文:テーブルをクリアしたいときは、truncate ステートメントをよく使用します。ほとんどの場合...

角度付き双方向バインディングの詳細な説明

目次双方向バインディングの原理ngモデルレンダリングカスタム双方向バインディングプロパティコンポーネ...