Nobody expects the ruby-build benchmark!

皆さんはT90CHIとlubuntuとrubyとrbenvとruby-buildをご存知でしょうか。
うわ、うぜえ、と悪態をつかれそうな導入となりましたが、今回は、ニッチというか、局所的な環境過ぎて、私以外置いてきぼりの誰も期待してないダメ記事です。
題して、まさかの時のruby-buildベンチマーク

まさかの時のruby-buildベンチマーク

さて、実際になにをするかと申しますと、こないだから使ってるT90CHIVirtualBox上のゲストOS(Lubuntu)と、その他Linux環境との性能比較です。

 その他Linux環境にエントリーするのは、ThinkPad E420とConoHaのVPS(安いやつ)です。ちなみにNetWalkerも比較しようと思ったのですが、後述するrubyのビルドに失敗しました。すぐには解決できそうもなかったので、今回はリタイアです。

Linuxでのベンチマークというと、UnixBenchなんかが有名ですが、今回は、少し変わったベンチマークを取りたいと思います。
具体的には、rbenvとruby-buildを利用して、各環境でruby2.3.0をビルドする時間を計測します。

我々の武器は二つ!ruby、rbenv、ruby-build

rbenvとruby-buildは、プログラム言語rubyのツールです。
rbenvはバージョンの異なるruby処理系を、一つの環境に簡単に共存させることが出来ます。また、ruby-buildはrbenvのプラグインで、rbenvと連動してruby処理系をコンパイル〜インストールしてくれます。このruby-buildによるコンパイル〜インストールにかかる時間を測ってベンチマークを取ろうというわけです。

聞いていいか?わからんのだ。なんだってこんな事をする?この行為にどんな意味があるっていうんだ?

意味なんてねー!!スカッとするからしてるだけなんだよこのボケー!!などと第二部の警官ばりに言ってみたいところですが、一応、理由らしきものはあります。
私は、T90CHIにVirtualBoxを入れて、ゲストOSのLubuntuを動かしています。
T90CHI自体、性能が高いとはいえないのですが、その上にさらにゲストOSを動かした場合、どの程度の処理速度なのか、ちょっと他のLinux環境と比較してみたい。で、ruby-buildでruby処理系をコンパイルするのが結構時間かかるし、CPUの演算とIOも絡むから、まあ、比較としては結構ありかもな、と思ったのが理由です。つまり単なる思いつきです。
理由になってない?じゃあ、「スカッとするから」でいいです*1

DIABOLICAL BENCHMARK

さて、それでは、T90CHI上のLubuntuにrbenvとruby-buildを入れ、時間を計測してみます。なお、上の見出しに特に意味はありません。
(ちなみに、rbenvとruby-buildの入れ方についてはこちらのサイトなどが参考になるとおもいます。

ストップウォッチで時間を計測するわけには行かないので、簡単なrubyスクリプトで自動計測させることにしましょう。

何の工夫もないrubyスクリプト

File.open("rb_result.txt", "w") do |f|
  hostname = `hostname`
  f.puts hostname

  t1 = Time.now
  f.puts(t1)

  system 'rbenv install 2.3.0'
  f.puts "build result : #{$?}"

  t2 = Time.now
  f.puts(t2)

  f.puts t2 - t1
end

単純に、最初の時間とビルド完了後の時間を取得して、時間差を結果ファイルに格納するだけの手抜きスクリプトです。
まあ、この程度で事足りますので。
他のLinux環境には、すでにrbenvが入ってますので、そちらはこのスクリプトをコピーして実行するだけです。
さて、結果やいかに。

Confess!

Linux環境のスペックは以下の通りです。

ConoHaのVPS(一番安いやつ) CPU不明2コア メモリ1GB
ThinkPad E420 Core i5-2540M メモリ8GB
T90CHI上のLubuntu(仮想マシン Atom Z3775(4コア中3コア割り当て) メモリ850MB

いい忘れましたが、ThinkPad E420、ConohaのVPSには、ubuntu14.04をインストールしています。
T90CHI上のLubuntuも14.04ですので、割と類似した環境となってます。

そして、結果は以下の通り。時間が短いほど高性能です。

機種 ビルド時間(秒)
ConoHaのVPS(一番安いやつ) 519.386035086
ThinkPad E420 306.75849482
T90CHI上のLubuntu(仮想マシン 1186.093912801

f:id:lmacs510:20160420233739p:plain

Oh, bugger

うーん、T90CHIがもう少し健闘するかと思ったんですが…。甘かったですね。
無茶言うな、ってことでしょうか。
あと、ConoHaのVPSが以外と健闘してます。
ちなみに、今回トラブルでベンチをとれなかったNetWalkerですが、確か数時間くらいかかったように記憶してます。
私にとってのT90CHI(上のLubuntu)は、NetWalkerの代替といった側面がありますので、そう考えれば、まあ、我慢できる感じでしょうか。(無理やり納得)

ちなみに、Raspberry PiのモデルBでruby2.1.0をビルドした時は、8818秒かかりました。参考まで(何の?)。

しかし何の意外性もない、予想通りのつまらない結果に終わりました。やっぱりスカっとはしなかったよ…。

 

 

*1:たぶんスカッとはしないと思います。