追加のバックトラッキングしないRegExpエンジン
· 約10分
v8.8以降、V8は既存のIrregexpエンジンに加えて、新しい実験的なバックトラッキングしないRegExpエンジンを搭載しました。このエンジンは、対象文字列のサイズに対して線形時間で実行されることを保証します。実験的なエンジンは以下の機能フラグの背後で利用可能です。
v8.8以降、V8は既存のIrregexpエンジンに加えて、新しい実験的なバックトラッキングしないRegExpエンジンを搭載しました。このエンジンは、対象文字列のサイズに対して線形時間で実行されることを保証します。実験的なエンジンは以下の機能フラグの背後で利用可能です。
デフォルト設定では、V8は初回実行時に正規表現をネイティブコードにコンパイルします。JITなしのV8の作業の一環として、正規表現用のインタープリターを導入しました。正規表現を解釈することにはメモリ使用量が少ないという利点がありますが、パフォーマンスの低下を伴います。このブログ投稿では、正規表現を解釈する利点を活かしつつ、欠点を軽減する方法を説明します。
このブログ投稿では、V8が最近実施したRegExpの組み込み関数を自己ホスト型JavaScript実装からTurboFanを基盤とする新しいコード生成アーキテクチャに直接接続する形になった移行について説明します。