LWP vs AnyEvent::HTTP (+ Coro)
AnyEvent::HTTPで同時にアクセスしないようにしてテスト
% perl -I. anyevnet_http.pl
Benchmark: timing 3000 iterations of anyevent, lwp...
anyevent: 3 wallclock secs ( 1.57 usr + 1.27 sys = 2.84 CPU) @ 1056.34/s (n=3000)
lwp: 6 wallclock secs ( 4.25 usr + 1.22 sys = 5.47 CPU) @ 548.45/s (n=3000)
script
use Benchmark; use LWP::UserAgent; use AnyEvent; use AnyEvent::HTTP qw//; $AnyEvent::HTTP::MAX_PER_HOST = 1; my $count = 3000; timethese( $count , { 'lwp' => sub { my $ua = LWP::UserAgent->new; my $res = $ua->get('http://localhost/') }, 'anyevent' => sub { my $cv = AE::cv; AnyEvent::HTTP::http_get 'http://localhost/', sub { $cv->send('1'); }; $cv->recv; }, });
LWPは速くない
同じようにCoro::LWP
若干遅くなる
Benchmark: timing 3000 iterations of coro...
coro: 5 wallclock secs ( 1.75 usr + 3.83 sys = 5.58 CPU) @ 537.63/s (n=3000)
use Benchmark; use Coro; use Coro::LWP; use LWP::UserAgent; my $count = 3000; async { timethese( $count , { 'coro' => sub { my $ua = LWP::UserAgent->new; my $res = $ua->get('http://localhost/') }, }); exit; }; schedule;
created by blog.nomadscafe.jp
コメント
コメントはありません
コメントを投稿
コメントを投稿するにはログインが必要です