Rails は本当に遅いのか?
Ruby on RailsがMetalに本腰を入れて取り掛かる
遅い遅いと言われ続けてきたRailsがついに本格的に高速化に取りかかっているようだ。(記事を読む限りは高速レスポンスを実現できるMetalという名前のモジュールを追加した、という感じだろうか。)
こうして自分の欠点を克服して進化しようとするのが、Railsの良い点だと思うので、大いに歓迎である。とはいえ、個人的には仕事でRailsを使ったことがないので、実は「Railsが遅い」と感じたことはない。
というわけで、年末休みで少しヒマだったので、計ってみた。
Javaの各種フレームワークとRailsで「リクエストを受け付けて、レスポンスに "Hello, Wolrd!" と書き出す」プログラムを書いて、Apache Bench で「ab -n 1000 アプリのURL」した場合の結果を測定した。
JavaはJDK6.0とGlassfish V3 prelude, Railsは Ruby1.8.7上のproductionモード。
組み合わせ | 結果(平均)(requests/s) | 最速値(requests/s) | 最遅値(requests/s) |
---|---|---|---|
Struts 1.2.9 | 561.78 | 938.26 | 302.3 |
JSF 1.2(Sun RI) | 577.11 | 864.22 | 287.72 |
Rails(Mongrel) | 175.89 | 235.84 | 130.34 |
Rails(Thin) | 170.10 | 205.31 | 124.68 |
Railsが遅いかどうかはわからないけど、とりあえず、Javaの方が3倍くらい速いことがわかった。時間があったらJRuby on Rails でも測定してみたいと思う。