JPAセミナー#1でJay Shirley氏が絶賛していたlocal::libですが、その際に「異なるバージョンのモジュールをテストするのにも便利ですね」とか言っていた気がするので、早速やってみました。

お題は、Catalystで先日公開されたMoose版の5.8と旧5.7をベンチマーク比較してみます。

まずはCatalyst::Runtime 5.71001を$HOME/cat5.7にインストールします。

$ cd
$ perl -MCPAN -Mlocal::lib=cat5.7 -e 'CPAN::install("M/MR/MRAMBERG/Catalyst-Runtime-5.71001.tar.gz")'

次にCatalyst::Runtime 5.8(この時点での最新版は5.8001でした)を$HOME/cat5.8にインストールします。

$ cd
$ perl -MCPAN -Mlocal::lib=cat5.8 -e 'CPAN::install(Catalyst::Runtime)'

$HOME/MyAppに新しいCatalystアプリケーションを作ります。

$ cd
$ catalyst.pl MyApp
$ cd MyApp

後は

$ perl -Mlocal::lib=~/cat5.8 script/myapp_server.pl  

とやればテストサーバーがCatalyst 5.8で起動するし

$ perl -Mlocal::lib=~/cat5.7 script/myapp_server.pl  

とやれば5.7で起動します。

で、参考までにベンチ結果ですがベンチ用に最小構成にした以下のアプリケーションをテストサーバーで立ち上げてとってみました。

lib/MyApp.pm
package MyApp;

use strict;
use warnings;

use Catalyst::Runtime;
use parent qw/Catalyst/;
__PACKAGE__->config( name => 'MyApp' );
__PACKAGE__->setup();

1;
lib/MyApp/Controller/Root.pm
package MyApp::Controller::Root;

use strict;
use warnings;
use parent 'Catalyst::Controller';

__PACKAGE__->config->{namespace} = '';
sub index :Path :Args(0) {
    my ( $self, $c ) = @_;

    $c->response->body( $Catalyst::VERSION );
}

1;

ab -n 1000 -c 10 http://localhost:3000/の結果は

5.71001
Requests per second:    164.87 [#/sec] (mean)
Time per request:       60.653 [ms] (mean)
Time per request:       6.065 [ms] (mean, across all concurrent requests)
Transfer rate:          18.30 [Kbytes/sec] received
5.80001
Requests per second:    156.48 [#/sec] (mean)
Time per request:       63.907 [ms] (mean)
Time per request:       6.391 [ms] (mean, across all concurrent requests)
Transfer rate:          17.37 [Kbytes/sec] received

でした。
この辺は参考程度にしかなりませんが、そこそこいい線行ってると思います。

              

              

トラックバック(0)

トラックバックURL: http://mt.hide-k.net/mt-tb.cgi/785

コメントする

プロフィール

このブログ記事について

このページは、hideが2009年4月22日 11:14に書いたブログ記事です。

ひとつ前のブログ記事は「Catalyst 5.8がリリース」です。

次のブログ記事は「Ubuntu 9.04をInspiron Mini 12にインストール」です。

最近のコンテンツはインデックスページで見られます。過去に書かれたものはアーカイブのページで見られます。