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の共存を懸念している

推薦する

Dockerはコンテナポートバインディングのローカルポートを実装します

今日、イメージを起動した後、HTTP リクエスト経由でアクセスできないという小さな問題が発生しました...

Vueルータールーティングの詳細な説明

目次1. 基本的な使い方2. 注意すべき点3. マルチレベルルーティング(マルチレベルルーティング)...

nginx での listen ディレクティブの例の分析

プロットレビュー前回の記事では、ロケーション命令の解析プロセスを分析しました。この内容を簡単に確認し...

HTML4.0 要素のデフォルトスタイルの配置

コードをコピーコードは次のとおりです。 html、アドレス、引用ブロック、本文、dd、div、 dl...

ドラッグアンドドロップによる並べ替えの詳細を実現する js

目次1. はじめに2. 実装3. HTML ドラッグ アンド ドロップ API を使用しないのはなぜ...

Linuxにログインする際の文字セットの問題を解決する方法

文字セットエラーは常に存在するロケール: LC_CTYPE をデフォルト ロケールに設定できません:...

Linux に MySQL をインストールする方法 (yum とソース コードのコンパイル)

Linux に MySQL をインストールするには、yum インストールとソース コード コンパイ...

SQL Server コメントのショートカット キー操作

SQL Server のバッチコメントバッチ注釈Ctrl + (K, C): Ctrlキーを押しなが...

mysql8.0.19 の基本データ型の詳細な説明

MySQL 基本データ型一般的な MySQL データ型の概要 ![1036857-201708011...

HTML入力ボックスの最適化により、ユーザーエクスペリエンスと使いやすさが向上します。

ユーザーエクスペリエンスと使いやすさを向上させるために、入力ボックスなど、Web ページでユーザーが...

スクロール時に選択領域のフォント色を暗くするために CSS を使用するサンプルコード

日付ピッカーをカプセル化する場合、選択時にフォントの色を暗くする必要があります。実装後の効果を見てみ...

Nginx メモリプールのソースコード分析

目次メモリプールの概要1. nginxデータ構造2. nginxはOSからスペースngx_creat...

HTML テーブル マークアップ チュートリアル (39): ヘッダーの明るい境界線の色属性 BORDERCOLORLIGHT

テーブル ヘッダーでは、明るい境界線の色を個別に定義できます。基本的な構文<TH ボーダーカラ...

alpineをベースにdockerfileで作成したクローラーScrapyイメージの実装

1.アルパインイメージをダウンロードする [root@DockerBrian ~]# docker ...

Nginxホットデプロイメントの実装

目次セマフォNginx ホットデプロイメント上記のブログ投稿に従ってください。ファイアウォールをオフ...