Leser: 1
![]() |
|< 1 2 3 >| | ![]() |
26 Einträge, 3 Seiten |
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
my $f = 50;
use Benchmark;
use strict;
use List::Util qw(first);
my @x = (0..$ARGV[0]||1000);
Benchmark::timethese(-2, {
Grep => sub{my $y = grep {$_ == $f} @x},
Util => sub {my $y = first {$_ == $f} @x} });
' 100
Benchmark:
running
Grep, Util
for at least 2 CPU seconds
...
Grep: 2 wallclock secs ( 2.00 usr + 0.00 sys = 2.00 CPU) @ 46457.50/s (n=92915)
Util: 2 wallclock secs ( 2.00 usr + 0.14 sys = 2.14 CPU) @ 76733.18/s (n=164209)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
use Benchmark;
use strict;
use List::Util qw(first);
my @x = ();
for(0..200) {
push @x, int(rand(1000));
}
Benchmark::timethese(-2, {
Grep => sub{my $y = grep {$_ == 300} @x},
Util => sub {my $y = first {$_ == 300} @x} });
Benchmark: running Grep, Util for at least 2 CPU seconds...
Grep: 2 wallclock secs ( 2.05 usr + 0.00 sys = 2.05 CPU) @ 24864.13/s (n=50872)
Util: 2 wallclock secs ( 2.13 usr + 0.00 sys = 2.13 CPU) @ 7761.41/s (n=16493)
1
2
3
4
5
6
7
8
9
10
11
use strict;
use warnings;
my @x = (0..$ARGV[0]||1000);
my $f = $ARGV[1] || 500;
use Benchmark;
use List::Util qw(first);
Benchmark::timethese(-1, {
Grep => sub{my $y = grep {$_ == $f} @x},
Util => sub {my $y = first {$_ == $f} @x}
}
);
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
> perl list_util.pl 1000 1
Benchmark: running Grep, Util for at least 1 CPU seconds...
Grep: 1 wallclock secs ( 1.06 usr + 0.00 sys = 1.06 CPU) @ 4830.19/s (n=5120)
Util: 1 wallclock secs ( 0.94 usr + 0.14 sys = 1.08 CPU) @ 176987.04/s (n=191146)
> perl list_util.pl 1000 500
Benchmark: running Grep, Util for at least 1 CPU seconds...
Grep: 1 wallclock secs ( 1.07 usr + 0.00 sys = 1.07 CPU) @ 4785.05/s (n=5120)
Util: 1 wallclock secs ( 1.05 usr + 0.01 sys = 1.06 CPU) @ 11269.81/s (n=11946)
> perl list_util.pl 1000 1000
Benchmark: running Grep, Util for at least 1 CPU seconds...
Grep: 1 wallclock secs ( 1.06 usr + 0.00 sys = 1.06 CPU) @ 4830.19/s (n=5120)
Util: 1 wallclock secs ( 1.06 usr + 0.01 sys = 1.07 CPU) @ 5910.28/s (n=6324)
> perl list_util.pl 1000 1001
Benchmark: running Grep, Util for at least 1 CPU seconds...
Grep: 1 wallclock secs ( 1.12 usr + 0.00 sys = 1.12 CPU) @ 4799.11/s (n=5375)
Util: 2 wallclock secs ( 1.07 usr + 0.01 sys = 1.08 CPU) @ 5855.56/s (n=6324)
1
2
3
4
~/work/perl-bench/grep-vs-first.pl 1000 1000
Benchmark: running Grep, Util for at least 1 CPU seconds...
Grep: 1 wallclock secs ( 1.08 usr + 0.00 sys = 1.08 CPU) @ 1382.41/s (n=1493)
Util: 1 wallclock secs ( 1.10 usr + 0.00 sys = 1.10 CPU) @ 813.64/s (n=895)
1
2
3
4
perl5.8.7 ~/work/perl-bench/grep-vs-first.pl 1000 1000
Benchmark: running Grep, Util for at least 1 CPU seconds...
Grep: 2 wallclock secs ( 1.05 usr + 0.00 sys = 1.05 CPU) @ 1358.70/s (n=1433)
Util: 1 wallclock secs ( 1.07 usr + 0.01 sys = 1.08 CPU) @ 1876.41/s (n=2023)
![]() |
|< 1 2 3 >| | ![]() |
26 Einträge, 3 Seiten |