検索
ホームページウェブフロントエンドhtmlチュートリアルコード running_html/css_WEB-ITnose に対する try catch のパフォーマンスへの影響

原因

JavaScript コードで例外をキャッチするには、一般的に try catch が使用されますが、try catch の使用はコードのパフォーマンスに影響しますか?答えは「はい」ですが、その数は不明です。

フロントエンドのオンライン スクリプト エラーをキャプチャする方法:

window .

try {

//コード

} catch ( e ) {

JSTracker . Push ( e ) ;

throw e ; // に再度エラーをスローすることをお勧めします。テストの失敗を回避する 異常を発見する

}

実験方法を設計する

単純な設計計画は比較実験です。

空白グループ 1: [try catch なしでデータを 1,000 万回モジュロするのに時間がかかります]

;

! function ( ) {

//try catch なしでは時間がかかります

var t = new Date ()

//コードの開始時は時間がかかります

for ( var i = 0 ; i

var p = i % 2 ;

}

//End時間のかかるコード

document . write ( new Date ( ) – t ) ;

>

2 時間のかかるインラインコードの状況

! function ( ) {

//try

var t = new Date () ;

// 時間のかかるコードが始まります

for ( var i = 0 ; i var p = i % 2 ; >}

//時間のかかるコードの終わり

throw new Error ( ) ;

} catch ( e ) {

}

ドキュメント . write ( new Date ( ) – t ) ;

コードは、時間のかかる外部コードで囲まれています。

の時間のかかる状況

function run () {

//時間のかかるコードの開始

for ( var i = 0 ; i

var p = i % 2;

}

//時間のかかるコードの終わり

}

//時間のかかるインラインコードtry Case

var t = new Date ( ) ;

try {

run ( ) ;

throw new Error ( ) ; 🎜 > } catch ( e ) {

}

ドキュメント . write ( new Date ( ) – t ) ;

< ; /script>

参照グループ 4: [時間のかかるコードを catch で囲み、コードをインライン化します]

4 時間のかかるインラインコード> <script></script>

! function ( ) {

//catch のインラインコードの時間がかかる状況

var t = new Date ( ) ; >

try {

throw new Error ( ) ;

} catch ( e ) {

//時間のかかるコードは

で始まります( var i = 0 ; i var p = i % 2 ;

}

//時間のかかるコードの終わり

}

ドキュメント . write ( new Date ( ) – t ) ;

参照グループ 5: [時間のかかるコードをキャッチで囲み、接続する]

のインラインコードの時間のかかる状況>

! 関数 ( ) {

function run () {

//時間のかかるコードの開始

for ( var i = 0 ; i

var p = i % 2;

}

//時間のかかるコードの終わり

}

//インラインコードの時間のかかる状況in catch

var t = new Date () ;

try {

throw new Error () ;

} catch ( e ) {

実行 ( ) ;

}

ドキュメント . write (

) ;

;/ スクリプト>

実行結果 (例として Chrome のみが選択されています)

概要を示します

不使用 try-catch try 中耗时,内联代码 try 中耗时,外联代码 catch 中耗时,内联代码 catch 中耗时,外联代码
Chrome51 98.2 1026.9 107.7 1028.5 105.9

try catch を使用するかどうかtry のコードまたは catch のコードのパフォーマンス消費は同じです。

  • 注意が必要なパフォーマンスの消費は、try catch に直接あまり多くのコードを入れないことです (変数を宣言しすぎないこと)。実行するすべてのコードを別のコードに入れるのが最善です。関数内ではこの関数を呼び出すことで実行されます。

  • 2 番目の点については、ECMA の try catch についての説明を確認できます。コードが try catch に入ると、JS エンジンは現在のレキシカル環境をコピーします。すべての変数の現在のスコープ。

  • 推奨されます

try catch を使用する場合は、try catch を比較的クリーンなスコープに配置するように努め、できれば try catch ステートメントに十分な少数の変数があることを確認してください。関数を通じてメソッドを呼び出してキャッチを試みます。

テストでの現象の説明

テスト中にまだ質問が見つかりました。次の 2 つのコードは Chrome 44 で実行されます。空の Try を追加すると、結果は大きく異なります。 catch 平均: 850 ミリ秒、プラス前: 140 ミリ秒。

! function ( ) {

// try catch を使用しないと時間がかかります

var t = new Date ( ) ; /時間のかかるコードの開始

for ( var i = 0 ; i

var p = i % 2 ;

}

//時間のかかるコードの終わり

document . write ( new Date ( ) – t ) ;

try {

} catch ( e ) {

}

} ( ) ;

! function ( ) {

//try catch を使用しないと時間がかかります

var t = new Date () ;

//時間のかかるコードが始まります

for ( var i = 0 ; i

var p = i % 2;

}

//時間のかかるコードの終わり

document . write ( new Date ( ) – t ) ;

} ( ) ;

実は、その理由は非常に簡単です

これにコードを変更するだけで、時間がかかります:

! function () {

! function () {

// try catch を使用しないと時間がかかります

var t = new Date ( ) ;

// 時間のかかるコードの開始

for ( var i = 0 ; i

var p = i % 2 ;

}

//時間のかかるコードの終わり

ドキュメント . write ( new Date ( ) – t ) ; ;

try {

} catch ( e ) {

}

} ( ) ;

声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
HTMLタグと属性に一貫したコーディングスタイルを使用することの重要性を説明します。HTMLタグと属性に一貫したコーディングスタイルを使用することの重要性を説明します。May 01, 2025 am 12:01 AM

コードの読みやすさ、保守性、効率を向上させるため、一貫したHTMLエンコーディングスタイルは重要です。 1)低ケースタグと属性を使用します。2)一貫したインデントを保持し、3)シングルまたはダブルの引用符を選択して固執する、4)プロジェクトのさまざまなスタイルの混合を避け、5)きれいなスタイルやEslintなどの自動化ツールを使用して、スタイルの一貫性を確保します。

ブートストラップ4にマルチプロジェクトカルーセルを実装する方法は?ブートストラップ4にマルチプロジェクトカルーセルを実装する方法は?Apr 30, 2025 pm 03:24 PM

Bootstrap4にマルチプロジェクトカルーセルを実装するソリューションBootstrap4にマルチプロジェクトカルーセルを実装するのは簡単な作業ではありません。ブートストラップですが...

DeepSeekの公式Webサイトは、マウススクロールイベントの浸透の影響をどのように達成していますか?DeepSeekの公式Webサイトは、マウススクロールイベントの浸透の影響をどのように達成していますか?Apr 30, 2025 pm 03:21 PM

マウススクロールイベントの浸透の効果を実現する方法は? Webを閲覧すると、いくつかの特別なインタラクションデザインに遭遇することがよくあります。たとえば、DeepSeekの公式ウェブサイトでは、...

HTMLビデオの再生コントロールスタイルを変更する方法HTMLビデオの再生コントロールスタイルを変更する方法Apr 30, 2025 pm 03:18 PM

HTMLビデオのデフォルトの再生コントロールスタイルは、CSSを介して直接変更することはできません。 1. JavaScriptを使用してカスタムコントロールを作成します。 2。CSSを介してこれらのコントロールを美化します。 3. video.jsやPLYRなどのライブラリを使用すると、互換性、ユーザーエクスペリエンス、パフォーマンスを検討してください。プロセスを簡素化できます。

お使いの携帯電話でネイティブセレクトを使用することにより、どのような問題が発生しますか?お使いの携帯電話でネイティブセレクトを使用することにより、どのような問題が発生しますか?Apr 30, 2025 pm 03:15 PM

携帯電話でネイティブセレクトを使用する際の潜在的な問題は、モバイルアプリケーションを開発するときに、ボックスを選択する必要があることがよくあります。通常、開発者...

お使いの携帯電話でネイティブ選択を使用することの欠点は何ですか?お使いの携帯電話でネイティブ選択を使用することの欠点は何ですか?Apr 30, 2025 pm 03:12 PM

お使いの携帯電話でネイティブ選択を使用することの欠点は何ですか?モバイルデバイスでアプリケーションを開発する場合、適切なUIコンポーネントを選択することが非常に重要です。多くの開発者...

Three.jsとOctreeを使用して部屋で3人のローミングの衝突処理を最適化する方法は?Three.jsとOctreeを使用して部屋で3人のローミングの衝突処理を最適化する方法は?Apr 30, 2025 pm 03:09 PM

Three.JSとOctreeを使用して、部屋でのサードパーソンローミングの衝突処理を最適化します。 3つのjsでoctreeを使用して、部屋でサードパーソンローミングを実装し、衝突を追加してください...

お使いの携帯電話でネイティブセレクトを使用する場合、どのような問題が発生しますか?お使いの携帯電話でネイティブセレクトを使用する場合、どのような問題が発生しますか?Apr 30, 2025 pm 03:06 PM

モバイルデバイスでアプリケーションを開発する際に携帯電話でネイティブセレクトの問題は、ユーザーが選択を行う必要があるシナリオに遭遇することがよくあります。ネイティブセル...

See all articles

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

Video Face Swap

Video Face Swap

完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

ホットツール

DVWA

DVWA

Damn Vulnerable Web App (DVWA) は、非常に脆弱な PHP/MySQL Web アプリケーションです。その主な目的は、セキュリティ専門家が法的環境でスキルとツールをテストするのに役立ち、Web 開発者が Web アプリケーションを保護するプロセスをより深く理解できるようにし、教師/生徒が教室環境で Web アプリケーションを教え/学習できるようにすることです。安全。 DVWA の目標は、シンプルでわかりやすいインターフェイスを通じて、さまざまな難易度で最も一般的な Web 脆弱性のいくつかを実践することです。このソフトウェアは、

Safe Exam Browser

Safe Exam Browser

Safe Exam Browser は、オンライン試験を安全に受験するための安全なブラウザ環境です。このソフトウェアは、あらゆるコンピュータを安全なワークステーションに変えます。あらゆるユーティリティへのアクセスを制御し、学生が無許可のリソースを使用するのを防ぎます。

SublimeText3 Linux 新バージョン

SublimeText3 Linux 新バージョン

SublimeText3 Linux 最新バージョン

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

PhpStorm Mac バージョン

PhpStorm Mac バージョン

最新(2018.2.1)のプロフェッショナル向けPHP統合開発ツール