AnyEvent-Net-Curl-Queued
view release on metacpan or search on metacpan
eg/benchmark.pl view on Meta::CPAN
#!/usr/bin/env perl
use strict;
use utf8;
use warnings qw(all);
use Benchmark::Forking qw(cmpthese);
use Class::Load qw(load_class);
use File::Basename;
use File::Slurp;
use Getopt::Long;
use List::Util qw(shuffle);
use POSIX qw(nice);
GetOptions(
q(count=i) => \my $count,
q(parallel=i) => \my $parallel,
q(repeat=i) => \my $repeat,
q(queue=s) => \my $queue,
);
my @queue = read_file($queue // q(queue), chomp => 1);
if ($repeat) {
my @new_queue;
for my $j (1 .. $repeat) {
for (my $i = 0; $i <= $#queue; $i++) {
push @new_queue, $queue[$i] . qq(?$j);
}
}
@queue = shuffle @new_queue;
}
my $tests = {};
for my $file (glob q(Gauge/*.pm)) {
next if $file =~ /\bRole\b/x;
my $class = $file;
$class =~ s{/}{::}gx;
$class =~ s{\.pm$}{}x;
my $name = $class;
$name =~ s{^.+::}{}x;
$name =~ s{_}{::}gx;
$tests->{$name} = sub {
load_class($class);
local $0 = $name;
my $obj = $class->new({
parallel => $parallel // 4,
queue => \@queue,
});
$obj->run;
};
}
nice(-20);
cmpthese($count // 10 => $tests);
( run in 0.394 second using v1.01-cache-2.11-cpan-39bf76dae61 )