2009年4月アーカイブ

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

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

Catalyst 5.8系、通称catamooseの最初のリリースバージョンであるCatalyst::Runtime 5. 80001がCPANにアップされました。

[Catalyst] [ANNOUNCE] Catalyst Runtime 5.80001
The Catalyst Core Team is proud to announce that we've just shipped  
the next major release of the Catalyst framework, version 5.8001.  
This release is the result of the helpful contributions of a large  
number of people, comprising documentation, new features, bug fixes  
and entire branches of refactoring, and has taken over twelve months  
work.

5.8系の大きな変更はcatamooseの通称どおりMooseの採用にあります。ただし、5.8系ではインターフェースとしては5.7系との後方互換があるので多くのケースではそのまま移行できるとのことです。

また、MROとしてNEXTからC3への移行や、古いM|V|Cのネームスペースの廃止、setupフェーズのhook pointの追加、細かなバグフィックスなどが含まれています。

この辺の情報はすでにドキュメント化されておりCPANに上がっています。

まだCatalyst::DevelやCatalyst::Manualのほうは更新されていませんが、この辺も徐々に追い付くと思われます。

RIMG0247.JPG

今年もプロ野球が開幕して早一週間、2009年関東開催一発目、対読売ドーム三連戦に超気合入れて行って参りました!






























...
orz


RIMG0242.JPG

すっかり春ですね。( ゚ ρ ゚ )


プロフィール

このアーカイブについて

このページには、2009年4月に書かれたブログ記事が新しい順に公開されています。

前のアーカイブは2009年3月です。

次のアーカイブは2009年5月です。

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