Ruby/NArray遅くないよ

投稿者: | 2016年7月2日

世間では、小学生でも使えるサブマシンガンであるRubyが断トツで遅いという誤解があるようなので、サブマシンガンで遊んでいるトンデモ初心者の一人としてこちらのサイトに載ってるnumpy使ったPythonのベンチマークをRuby + NArrayを使って書いてみました。

言語 計算時間(msec)
Python(Numpyあり) 167
Python(Numpyなし) 739
Ruby 4159
C言語(最適化なし) 185
C言語(最適化あり) 1

RubyはPython + Numpyより24倍遅い…のか?

① Python + Numpy

② Ruby + NArray

実行するとあら不思議、

Python + Numpy
real 0m0.162s
user 0m0.169s
sys 0m0.205s

Ruby + NArray
real 0m0.077s
user 0m0.050s
sys 0m0.030s

このように、Rubyの方がnumpyより2倍ぐらい速いですね(強引)
(もっともnumpyにもcumusumあるから、それ使えば多分NArrayよりも速いけどね)

その証拠に同じような書き方にするとPython + Numpy が Ruby + NArray の2倍ぐらい速いです。
さすがNumpy

③ 同じような感じで書いたRuby

real 0m0.262s
user 0m0.213s
sys 0m0.051s

それでもせいぜい2倍ぐらいですよん? 少なくともRubyだけ特別に遅いというのは誤解だと思う。

追記7/5:Rubyの書き方を修正したらもうちょっと速くなった

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です