この文章は Salesforce 機械翻訳システムを使用して翻訳されました。詳細はこちらをご参照ください。
英語に切り替える

JavaScript コードへの Lightning Locker の影響のベンチマーク

Lightning Locker が有効な場合と無効な場合の JavaScript コードのベンチマークを実行し、相対的なパフォーマンス総計値を表示します。

このベンチマークにより、コンポーネントをテストするアプリケーションを作成することなく、Lightning Locker が有効な場合と無効な場合のパフォーマンスの違いを確認できます。

例を見てください。一連のネストしたループのパフォーマンスについて研究しましょう。

  1. 次のコードをコードコンソールに張り付けます。
  2. [Benchmark (ベンチマーク)] をクリックします。

    結果ウィンドウの [FASTEST] 列には、Lightning Locker が無効な場合に 6.5 倍の速さでコードが実行されることが示されています。この速度の違いがセキュリティのコストであり、このパフォーマンス損失を受け入れることができるかどうかは、各事例によって異なります。

    Locker Console のベンチマーク結果

このベンチマークアクションにより、コードを調整し、実行時に変更がどのように影響するかを確認できます。計算が集中するコードのセクションを最適化する場合、この迅速な反復プロセスが役立ちます。

向上したパフォーマンスの例

Lightning Locker のオーバーヘッドを軽減する方法を示すため、HTML の文字列を使用する同じテーブルを作成し、ベンチマークを実行して、違いを評価します。

  1. 次のコードをコードコンソールに張り付けます。
  2. [Benchmark (ベンチマーク)] をクリックします。Locker Console のベンチマーク結果の向上

この例のループ内に document.createElement() などの DOM API コールがないため、build() 関数のパフォーマンスは、Locker が有効であるか無効であるかに関係なく似ています。Lightning Locker が無効な場合、コードは 1.08 倍の速さで実行されます。複数の DOM API コールが含まれる前の例では 6.5 倍の速さでした。

一般に、簡単な JavaScript は DOM API よりもはるかに高速であり、DOM へのコードセクションの接続頻度が高いほどコードの実行時間が遅くなります。Locker のほとんどのオーバーヘッドの原因は DOM API にあります。ここでは、DOM への接続回数を減らすことでコードを加速化します。これにより、Locker 全体のオーバーヘッドも大幅に軽減されます。