ベンチマークスクリプトをとっても便利にしてみました

以前「Amrita2やTenjinなどのベンチマークスクリプトを追加」に書きましたように、Ramazeさんにはベンチマークスクリプトが用意されています。これはとても良いことだと思います。他の人が採ったベンチマーク結果は、環境が違っていたり基準が不明瞭だったりして、あまり参考にならない場合やむしろ混乱する場合があります。だから各自がベンチマークを簡単に採ることになっていることが重要であると私は考えます。Ramazeさんは特に軽量であることを目指しているわけですから、実際どのくらい軽量なのかを常に示せるようにしておかないと駄目なわけです。

というわけで、ベンチマークをもっと快適に採れるように、benchmark/run.rb をとってもとっても便利にしておきました(レポジトリから取得して下さい)。改良点は以下のようになります。

  • オプションを沢山つくってみました、とりあえず -h して眺めてみて下さい
  • -n, -c オプションでリクエスト数などを調整できます
  • --no-sessions, --no-informer などでセッションやログ採取の有無を設定できます
  • --path でリクエストパスを変更できます、でも今はまだ無意味です
  • CSV形式で出力することが出来ます

今回特にマシになったのはCSV形式で出力できるようになったことです。これでようやくグラフを描いてみようかという気力が湧くものと思います。せっかくですから私も手元の環境で採った結果をグラフにしてみました。普段あまりグラフを描くことがないのでどうやって描いていいものか悩んだ末に OpenOffice でグラフ化してみました。以下に貼り付けてみます。

http://file.dynamic-semantics.com/hatena/2e46ecd0-5146-409e-822e-4828467f2789.jpg

やっぱりerubis, liquid, tenjin が速い!ということが手に取るように分かりますね。なお、今回の計測では 250 reqs/s にも届いてないのですが、これはRamazeさんの実力からすればもっと良い数値が出るはずです。この結果は手元で使ってるけどまだ push してない危険なパッチのせいだと思われます。というかこういう数値は環境を明記しないと全く意味がないわけですが、今回はグラフを描きたかっただけなのでそういう詳細は敢えて明らかにしないことにします。そういうわけですから数値自体は参考にしないで下さい。

ところで、OpenOfficeでグラフを描いてみた感想ですが、グラフの保存方法が分からなかったり(結局HTMLでプレビューして保存しました、多分間違っていると思います)フォントの変更がとても面倒だったりして、大部やる気をなくしました。次は別のソフトを使ってグラフを描こうと思いました。OpenOfficeはもう少し頑張ってくれても良いと思います。