SpeedyCGIを試す

http://sunos.saita.ma/2ch-cgi-lw.htmlでSpeedyCGIが書かれていたので試してみました。

参考)
http://search.cpan.org/~horrocks/CGI-SpeedyCGI/
http://perldoc.jp/docs/modules/CGI-SpeedyCGI-2.21/SpeedyCGI.pod
http://homepage3.nifty.com/hippo2000/perltips/javaperl.htm

なぜに川合さんのページがあるかというと、ベンチマークスクリプトを頂戴いたしました。

スクリプトはこんなの。

normal.cgi


#! /usr/local/bin/perl
my $start = `./pg_chk_speed`;
use strict;
use warnings;
use CGI;
my $cgi = CGI->new;
print $cgi->header(-type=>'text/html',-charset=>'EUC_JP',);
print "normal.cgi\n";
for my $n (0..10000) {
open(DH ,">>./test.log");
print DH "$n\n";
close(DH);
}
prime('10000');
print "
END\n";
my $end = `./pg_chk_speed`;
my $ans = $end - $start;
print $ans;
sub isprime {
my ($i)=@_;
for(my $j=2; $j*$j <= $i ; ++$j ){
return 0 if( $i%$j == 0 );
}
return 1;
}
sub prime {
my ($limit)=@_;
my $c = 0;
my $p;
for($p=2; $c<$limit; ++$p ){
++$c if( isprime( $p ) );
}
return $p;
}

speedy.cgi

#! /usr/local/bin/perl

#! /usr/local/bin/speedy

に変えただけ。


で、スクリプトの中にある見慣れない

my $start = `./pg_chk_speed`;

はミリ秒単位で時間を返してくれる自作のコマンドです。
今回はちょっとこれを使ってみました。

で結果ですが、、

normal.cgiの実行結果

1:29.87844491
2:29.86700606
3:30.237463
4:31.06111813
5:29.92344117
平均:30.19349465

speedy.cgiの実行結果

1:29.36396599
2:28.98142791
3:29.00801301
4:28.99351692
5:29.02495503
平均:29.07437577

でした。一応CGIで実行させた結果です。

うーん。はやいのか?なんか足りないのかなぁ。

個人的に物足りない結果です。

バカ、ちげーよってのがあれば教えて下さい。m(_ _)m


(追記)
memoryのfreeがかすかに違いが見えてました。

normal.cgiは483384
speedy.cgiは485312

でもこんなのスクリプトによる気がするなぁ。