Direct Threaded版とJITの速度比較

2018-02-22
JITを動かす記事を読んで、ふとDirect Threadedでのインタプリタだとどのくらいの速度が出るのか気になった。

ので手元で計測してみた。

 

Type Mandelbrot Factor
simpleinterp 44.079 14.401
optinterp3 4.850 2.486
simpledt 38.625 12.221
optdt 2.974 1.417
simpleasmjit 3.626 1.180
optasmjit 1.319 0.399

(最適化なしのインタプリタ版は遅すぎるので、グラフからは除外)

  • Direct Threadedはかなり効果がある(switch文による分岐のものと比べて40%ほど速い)
  • とはいえ、1命令ごとにジャンプが必要なのは変わらないから、まあJITにはかなわないのは致し方ない