2013-07-21 39 views
1

我有時使用LWP :: Simple Perl模塊,我知道它是完整LWP模塊的簡化版本。我盲目地使用它,因爲有人建議我在一段時間後使用它。在整個軟件包中使用它有什麼好處,速度更快,更易於使用?是LWP ::簡單比完整的LWP更快嗎?

回答

4

LWP :: Simple不會比LWP :: UserAgent更快,因爲它使用LWP :: UserAgent。這只是一個更簡單的界面。

0

問題是「比A快A」,應該總是得到相同的答案:試試吧!在你的環境中,數據的種類,通常可使用,等等。這裏是一個簡短的腳本,讓你開始:

use strict; 
use warnings; 

use Benchmark qw/ cmpthese /; 
use LWP::UserAgent; 
use LWP::Simple; 

my $url = 'http://localhost/'; 

my $ua = sub { 
    my $ua = LWP::UserAgent->new; 
    my $res = $ua->get($url); 
    if ($res->is_success) { 
     my $content = $res->decoded_content; 
    } 
}; 

my $simple = sub { 
    my $content = get($url); 
}; 

cmpthese(-60, { 
     'LWP::UserAgent' => $ua, 
     'LWP::Simple' => $simple, 
}); 

在我的系統,其中http://localhost/會返回一個微小的索引頁,LWP::Simple實際上是略慢:

   Rate LWP::Simple LWP::UserAgent 
LWP::Simple 401/s    --   -3% 
LWP::UserAgent 414/s    3%    -- 

但很難說什麼會避難,當URL給你一個DVD圖像,例如

+0

回覆:「LWP :: Simple實際上稍慢」。這不是你的基準證明。小於5%的任何應該被視爲噪音。 (由於代碼最終放在內存中,我已經看到高達10%的變化)。根據響應的類型和長度,您也可能得到不同的結果(儘管您不會因爲LWP :: Simple使用LWP :: USerAgent)。 – ikegami