Leser: 1
|< 1 2 >| | 15 Einträge, 2 Seiten |
@saw{@{$hash{$KONSTANTE}}} = ();
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
use strict;
use warnings;
use Benchmark;
Benchmark::cmpthese(-1,{
'shift' => sub {
my (%seen, $string);
my @array = (0..1000, 0..1000);
$seen{$string}++ while $string = shift @array;
for (keys %seen) {
push @array, $_;
delete $seen{$_};
}
},
'grep' => sub {
my %seen;
my @array = (0..1000, 0..1000);
my @unique = grep { ! $seen{$_}++ } @array;
},
});
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
my @a = (0..1000, 0..1000);
Benchmark::timethese($ARGV[0]||-1,{
"shift" => sub {
my (%seen, $string);
my @array = @a;
$seen{$string}++ while defined ($string = shift @array);
for (keys %seen) {
push @array, $_;
delete $seen{$_};
} return @array;
},
"grep" => sub {
my %seen;
my @unique = grep { ! $seen{$_}++ } @a;
},
});
__END__
grep: 1 wallclock secs ( 1.04 usr + 0.00 sys = 1.04 CPU) @ 614.42/s (n=639)
shift: 1 wallclock secs ( 1.03 usr + 0.00 sys = 1.03 CPU) @ 296.12/s (n=305)
QuoteDa bleibt aber immer noch die unschöne Sache mit der dreifachen
Datengröße.
|< 1 2 >| | 15 Einträge, 2 Seiten |