angelos@mod_perl

angelosはHTTP::Engineを使っているので、HTTP::Engine以上の速度がでることはないので、HTTP::Engineとの速度差をみながらチューニングをしてみてるんですが、同じコードでもServerSimpleとmod_perlとで10%近く速度に差がでるなぁと。

server simpleでApache benchで計測した場合

  • angelos: Requests per second: 568.69 [#/sec] (mean)
  • HTTP::Engine Requests per second: 893.33 [#/sec] (mean)

63%

mod_perl下でApache benchで測定した場合 (with App::Bencmark::WAF)

52%

mod_perl下での改善は、まずは動的にロードされるモジュールを調べて、startup.plに書くのを一通りやってみてどこまで縮まるかだなぁ。プロセスの生成のコスト分、時間がかかっているだけであれば、それで少し改善されるかなと。

ただ、それが改善できても、dispatch部分, pluginのhookの実行, controllerのfilter処理くらいなので、そんなに何もしてない割にはスループットがいまいちだなぁと。

HTTP::RouterでDispatcherしないと、mod_perl下で550[#/sec] なので、それでもHTTP::Engineとの200[req/sec]の差がでる。少し差があるような気がするので、どこが原因かを調べたいけど、結構むずいなぁと。