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% -
+-
-
Are you posting in the right place? Check out Where do I post X? to know for sure.
-
Posts may use any of the Perl Monks Approved HTML tags. Currently these include the following:
<code> <a> <b> <big>
<blockquote> <br /> <dd>
<dl> <dt> <em> <font>
<h1> <h2> <h3> <h4>
<h5> <h6> <hr /> <i>
<li> <nbsp> <ol> <p>
<small> <strike> <strong>
<sub> <sup> <table>
<td> <th> <tr> <tt>
<u> <ul>
-
Snippets of code should be wrapped in
<code> tags not
<pre> tags. In fact, <pre>
tags should generally be avoided. If they must
be used, extreme care should be
taken to ensure that their contents do not
have long lines (<70 chars), in order to prevent
horizontal scrolling (and possible janitor
intervention).
-
Want more info? How to link
or How to display code and escape characters
are good places to start.
|