この記事ではNode.js v5.0.0とruby 2.2.3とを使用しています。
そして、ネタです。つまりは、本投稿は必ずしも個人の見解でもなく、必ずしも私めの雇用主、関係者の立場、戦略、意見を代表するものではありません。
すごい要約
- RubyからGoの関数をつかう → はやい - Qiita
- Crystalで書く → はやい - Qiita
- RubyからRustの関数をつかう → はやい
- NEW Node.jsをつかう → はやい
です。
Node.js、はやい
Node.jsとRubyの計算速度を比べるため、フィボナッチ数を単純に計算するやつをそれぞれ書きました。
fib.js
function fib(n){
if(n <= 1) {
return n;
}
return fib(n - 1) + fib(n - 2);
}
console.log(fib(40));
fib.rb
def fib(n)
return n if n <= 1
fib(n - 1) + fib(n - 2)
end
puts fib(40)
RubyのコードはRubyからRustの関数をつかう → はやいから頂きました。
実行結果は以下です。
Node.js
$ node -v
v5.0.0
$ time node fib.js
102334155
real 0m1.520s
user 0m1.417s
sys 0m0.031s
Ruby
$ ruby -v
ruby 2.2.3p173 (2015-08-18 revision 51636) [x86_64-darwin15]
$ time ruby fib.rb
102334155
real 0m16.715s
user 0m16.285s
sys 0m0.400s
Node.jsの方がRubyより10倍早い。スクリプト言語でも十分早い。
みんなJavaScript使えばいいのに。(危ない)