我正在尝试与脚本并行获取大约7个数据库:第一个是HTTP :: Async,第二个是在pastebin上,使用Net :: Async :: HTTP.问题是我得到了相同的计时结果 - 所有网址列表大约8..14秒.与从shell开始的curl + xargs相比,这是不可接受的缓慢,使用10-20"线程"可以在不到3秒的时间内完成所有操作.例如,第一个脚本中的Devel :: Timer显示最大队列长度甚至小于6($queue->in_progress_count<= 5,$queue->to_send_count= 0总是).因此,看起来像$ queue-> add的foreach执行速度太慢,我不知道为什么.我使用Net :: Async :: HTTP(在pastebin上的第二个脚本)获得的情况非常相似,这比第一个更慢.
那么,拜托,有人知道吗,我做错了什么?与从shell启动的curl + xargs相比,我怎样才能获得并发下载速度?
#!/usr/bin/perl -w
use utf8;
use strict;
use POSIX qw(ceil);
use XML::Simple;
use Data::Dumper;
use HTTP::Request;
use HTTP::Async;
use Time::HiRes qw(usleep time);
use Devel::Timer;
#settings
use constant passwd => 'ultramegahypapassword';
use constant agent => 'supa agent dev.alpha';
use constant timeout => 10;
use constant slots => 10;
use constant debug => …Run Code Online (Sandbox Code Playgroud)