Makoto Kuwata
kwa****@kuwat*****
2012年 1月 22日 (日) 10:25:58 JST
2012/1/17 SHIBATA Hiroshi <shiba****@gmail*****>: > > net/http, uri, timeout は他のプラグインやフィルタ、本体でも多分に使って > いるので lazy load にしてもあまり効果が無いような気がしますがどうでしょうか。 > > やります? 先に掲載したベンチマーク上では明確に効果が現れています。 結果を再掲します。 > > ## (Ruby 1.8.7-p334) > ## before > Requests per second: 4.34 [#/sec] (mean) > ## after (lazy load: rexml) > Requests per second: 4.77 [#/sec] (mean) # 10% up > ## after (lazy load: rexml, net/http, uri, timeout) > Requests per second: 4.96 [#/sec] (mean) # 14% up > > ## (Ruby 1.9.3-p0) > ## before > Requests per second: 2.33 [#/sec] (mean) > ## after (lazy load: rexml) # 19% up > Requests per second: 2.77 [#/sec] (mean) > ## after (lazy load: rexml, net/http, uri, timeout) > Requests per second: 2.98 [#/sec] (mean) # 28% up また require を遅延させることで、なにかデメリットはあるでしょうか。 もし大きなデメリットがないのであれば、高速化というメリットを選択して いただけるとうれしいです。 ### なお高速化のためのパッチを添付した背景を説明しまと、 先日、さくらインターネットのレンタルサーバにtdiaryをインストールして動かしたところ、 apache bench測定で 0.7 req/sec しか速度が出ませんでした。 ## 試してみたい方は以下をどうぞ。ご自由にお試し下さい。 $ ab -n 10 -c 1 'http://gal.undo.jp/tdiary/?date=20120101' ... Requests per second: 0.67 [#/sec] (mean) ... いくらなんでもこれは遅すぎると思いました。 同じ環境で、別のCGIスクリプトは 6〜7 req/sec の性能が出てるので、 tdiaryはもうちょっと速度がでてもいいのかなと思います。 -- makoto kuwata