[解決済み] Javascriptでは、例外が発生しない場合でもtry-catchブロックを使用すると高くつきますか?
2023-07-20 11:51:10
質問
複数のtry-catchブロックで例外が発生しない場合、try-catchブロックを複数使用することは遅いですか?私の質問は、次のものと同じです。 この1つ と同じですが、JavaScriptのためのものです。
例えば、トライキャッチブロックを持つ20の関数と、その20の関数をすべて呼び出す別の関数があるとします。 ここで、どれも例外を投げない . このトライキャッチブロックのために、私のコードの実行速度が遅くなったり、パフォーマンスが大幅に低下したりするのでしょうか?
どのように解決するのですか?
典型的な CRUD UI コードをしていませんか?try キャッチを使用し、コードに散りばめられている理由もなく 10000 に達するループを使用し、hell、angular/ember を使用します - あなたはパフォーマンスの問題に気づくことはありません。
低レベルのライブラリ、物理シミュレーション、ゲーム、サーバーサイドなどを行っている場合、トライキャッチブロックを決して投げないことは通常まったく問題になりませんが、問題は V8 がエンジンのバージョン 6 まで最適化コンパイラーでそれをサポートしなかったことです。しかし、この問題は簡単に回避することができます。
tryCatch
:
function tryCatch(fun) {
try {
return fun();
}
catch(e) {
tryCatch.errorObj.e = e;
return tryCatch.errorObj;
}
}
tryCatch.errorObj = {e: null};
var result = tryCatch(someFunctionThatCouldThrow);
if(result === tryCatch.errorObj) {
//The function threw
var e = result.e;
}
else {
//result is the returned value
}
V8 バージョン 6 (Node 8.3 と最新の Chrome に同梱) 以降は、以下のコードのパフォーマンスが向上しました。
try-catch
の中のコードのパフォーマンスは、通常のコードと同じです。
関連
-
[解決済み] SQLiteのINSERT/per-secondのパフォーマンスを向上させる
-
[解決済み] Javaにおける例外処理によるパフォーマンスへの影響とは?
-
[解決済み] なぜすべてのブロックを "try"-"catch "で包んではいけないのですか?
-
[解決済み] 警告をtry/catchすることはできますか?
-
[解決済み] Intel CPU の _mm_popcnt_u64 で、32 ビットのループカウンターを 64 ビットに置き換えると、パフォーマンスが著しく低下します。
-
[解決済み】例外をスローしない場合、try/catchブロックはパフォーマンスを低下させるか?
-
[解決済み】Exceptionを投げるとき、どの部分が高価なのですか?
-
[解決済み】例外が発生しないのにtry-catchブロックを使うのは高くつく?
-
[解決済み] javascript の関数から `undefined` と `null` のどちらを返すのが良いのでしょうか?
-
[解決済み] jQueryのバージョン1、バージョン2、バージョン3の違いは何ですか?[クローズド]
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] JavascriptのforEachを停止する方法は?重複
-
[解決済み】例外が発生しないのにtry-catchブロックを使うのは高くつく?
-
[解決済み] 配列からオブジェクトを生成する
-
[解決済み] チェックボックスが選択されているかどうかを確認するjQuery
-
[解決済み] なぜJavaScriptでは!{}[true]がtrueに評価されるのですか?
-
[解決済み] Javascriptで動的に命名されたメソッドを呼び出すにはどうすればよいですか?
-
[解決済み] react-routerのハッシュフラグメントからクエリパラメータを取得する
-
[解決済み] $.ajax実行中にローディングイメージを表示する
-
[解決済み] JavaScriptのArray.sort()メソッドでシャッフルするのは正しいのか?
-
[解決済み] エラーの代わりに文字列を投げる