もし node v0.4.9 (64bit版) が Crankshaft を有効にしたら
Node v0.5.1 がリリースされて、64bit 版でも Crankshaft が有効になって、V8 Benchmark Suite を移植したりして、色々ベンチをとっていたら、「Crankshaft はえぇーーーーーーーー!」という結果になった。
hakobera/node-v8-benchmark-suite · GitHub
で、各バージョンのベンチマークでも取ろうと思ったら、既に @muddydixon さんが既に取っていたので、
NodeのVersionゴトの簡単なベンチマーク - ぽりぴぃすらいと
@koichik さんから教えてもらった
0.4 ブランチをチェックアウトして deps/v8 以下を削除,そこに v8 をまるごとクローンしてビルドすれば Node 0.4.9 + V8 3.4 のできあがり♪
という別のネタをやってみました。
手順
wget http://nodejs.org/dist/node-v0.4.9.tar.gz wget http://nodejs.org/dist/v0.5.1/node-v0.5.1.tar.gz tar -xzf node-v0.4.9.tar.gz tar -xzf node-v0.5.1.tar.gz rm -rf ./node-v0.4.9/deps/v8 cp -r ./node-v0.5.1/deps/v8 ./node-v0.4.9/deps/ cd node-v0.4.9 ./configure make
build/default/node が実行ファイルです。
結果
「Crankshaft はえぇーーーーーーーー!」
v0.4.9 Normal | v0.4.9 Crankshaft 有効 | v0.5.1 | |
---|---|---|---|
Richards | 2215 | 4286 | 4437 |
DeltaBlue | 2784 | 6466 | 5957 |
Crypto | 1395 | 4020 | 3943 |
RayTrace | 2795 | 6378 | 6277 |
EarleyBoyer | 7464 | 9603 | 8793 |
RegExp | 1149 | 1415 | 1347 |
Splay | 1551 | 1641 | 1526 |
Score | 2279 | 3982 | 3813 |
64bit 版 Node を使ってる人で v0.6 を待ちきれない人で、パフォーマンスを重視する皆様は是非是非お試しあれ。ま、ブラウザベンチの移植なので、一概に速くなっていると言えるわけではないんですがね。
おまけ
node 本体にあるベンチマークもやってみたよ。JS の function call は速くなっていて、C++ の function call は遅くなっているみたい。
v0.4.9 Normal
100000000 JS function calls: 2622 100000000 C++ function calls: 12124 JS function call speed: 26.22 microseconds C++ function call speed: 121.24 microseconds JS speedup 4.6239511823035855
v0.4.9 Crankshaft 有効版
100000000 JS function calls: 1797 100000000 C++ function calls: 19286 JS function call speed: 17.97 microseconds C++ function call speed: 192.85999999999999 microseconds JS speedup 10.732331663884251
v0.5.1
100000000 JS function calls: 1893 100000000 C++ function calls: 18593 JS function call speed: 18.93 microseconds C++ function call speed: 185.93 microseconds JS speedup 9.821975699947174