Yes, LWP::Simple is much faster than LWP::UserAgent.
#!/usr/bin/perl -w
use strict;
use Benchmark qw(:all);
use lib 'src/WWW-Curl-Lite/lib';
use WWW::Curl::Lite::Request;
use WWW::Curl::Lite;
use LWP::Simple;
use LWP::Parallel::UserAgent;
use HTTP::Request;
use HTTP::MHTTP;
my $request = new WWW::Curl::Lite::Request( { url => 'http://127.0.0.1
+' } );
my $curl = new WWW::Curl::Lite;
my $pua = new LWP::Parallel::UserAgent;
my $req = new HTTP::Request( GET => 'http://127.0.0.1' );
cmpthese(
100,
{
'curl' => sub {
for ( 1 .. 10 ) { $curl->register($request) }
$curl->request;
},
'lwp' => sub {
for ( 1 .. 10 ) { get('http://127.0.0.1') }
},
'lwp-parallel' => sub {
$pua->initialize;
$pua->nonblock(1);
for ( 1 .. 10 ) { $pua->register($req) }
$pua->wait;
},
'mhttp' => sub {
for ( 1 .. 10 ) {
http_init();
http_call( "GET", "http://127.0.0.1" );
http_response();
}
}
}
);
Rate lwp-parallel lwp curl mhtt
+p
lwp-parallel 9.07/s -- -78% -89% -96
+%
lwp 41.3/s 355% -- -50% -81
+%
curl 83.3/s 818% 102% -- -62
+%
mhttp 217/s 2296% 426% 161% -
+-
|