デバッグ機能を使用すると、console.log
JavaScript の実行パフォーマンスが低下しますか? 実稼働環境でのスクリプト実行速度に影響しますか?
単一の構成場所から実稼働環境でコンソール ログを無効にする方法はありますか?
ベストアンサー1
実際には、console.log
空の関数よりもずっと遅くなります。このjsPerfテストChrome 38 では驚くべき結果が得られます:
- ブラウザコンソールが閉じられたら
console.log
、約10,000倍遅い空の関数を呼び出すよりも、 - そしてコンソールが開いている場合、それを呼び出すのに100,000倍も遅くなります。。
一度に実行される呼び出しが妥当な数であれば、パフォーマンスの遅延に気付くことはありませんconsole.…
(Chrome のインストールでは 100 回で 2 ミリ秒、コンソールが開いている場合は 20 ミリ秒かかります)。ただし、コンソールにログを繰り返し記録する場合 (たとえば、コンソールを介して接続する場合requestAnimationFrame
)、動作が不安定になる可能性があります。
アップデート:
このテストでは私はまた、プロダクション用のカスタム「隠しログ」のアイデアもチェックしました。これは、ログメッセージを保持する変数を用意し、必要に応じて利用できるようにしたものです。
- 約1000回ネイティブよりも速く
console.log
、 - ユーザーがコンソールを開いている場合は、明らかに 10,000 倍高速になります。