「Onigmoのインタプリタをdirect threaded codeに置き換えてCRubyを8%高速化した話 - 開発日記」
Ruby言語の正規表現エンジンとしても使われているOnigmo(鬼雲)を高速化したのでその話をします。 Onigmoでは、正規表現のマッチにはバイトコードインタプリタを用いてNFAの実行をしています。バイトコードインタプリタの高速化には古くから知られている技法として、direct threaded codeがあり、この技法を用いればswitch-caseを用いて実装されたインタプリタと比べると間接jumpの除去が行えるなど高速化が期待できます。実際、Onigmoでもswitch-case によるdispatchからこのdirect threaded codeに変えることで高速化しています。 k…
コンテンツ文字数:0 文字
見出し数(H2/H3タグ):0 個
閲覧数:117 件
2021-10-19 11:11:14