SunSpider JavaScript Benchmarkを移植してJSXとJavascriptの速度を比べてみた
JSXの特徴は、トップページにも書いてあるとおり「faster, safer, easier」の3つです。安全性とか簡単さについては人とか状況によって様々な定義や意見がありますが、唯一Fasterだけは客観的に測れます。
しかしJSXと速度については、トップページにあるBox2Dとshootingのデータ*1とAOBench on JSXぐらいしかありません。
というわけでWebkitで使われているSunSpider 1.0.2 JavaScript BenchmarkをJSXに移植してJavascriptと速度を比較してみました。*2
環境
改善率まとめ
正の場合はJSXのほうが速く、負の場合はJSXのほうが遅い。
最善 | 最悪 | 平均 | |
---|---|---|---|
iPhone | 67% | -97% | -12% |
iPad | 73% | -91% | -7% |
Safari | 47% | -90% | -14% |
Firefox | 89% | -73% | 18% |
Chrome | 35% | -88% | -3% |
結論
- regexp-dnaがすごく遅い。JSXに複数行文字列リテラルがなく、実行時にArray#joinで生成しているため。
- regexp-dnaを除けば、JavascriptとJSXは大きな速度差はない。「絶対に遅くならない」は達成できているのではないか。