Data commit
This commit is contained in:
parent
7387c8f97b
commit
cb5bb5e222
199093 changed files with 3378972 additions and 0 deletions
18
Task/Time-a-function/Perl/time-a-function-1.pl
Normal file
18
Task/Time-a-function/Perl/time-a-function-1.pl
Normal file
|
|
@ -0,0 +1,18 @@
|
|||
use Benchmark;
|
||||
use Memoize;
|
||||
|
||||
sub fac1 {
|
||||
my $n = shift;
|
||||
return $n == 0 ? 1 : $n * fac1($n - 1);
|
||||
}
|
||||
sub fac2 {
|
||||
my $n = shift;
|
||||
return $n == 0 ? 1 : $n * fac2($n - 1);
|
||||
}
|
||||
memoize('fac2');
|
||||
|
||||
my $result = timethese(100000, {
|
||||
'fac1' => sub { fac1(50) },
|
||||
'fac2' => sub { fac2(50) },
|
||||
});
|
||||
Benchmark::cmpthese($result);
|
||||
26
Task/Time-a-function/Perl/time-a-function-2.pl
Normal file
26
Task/Time-a-function/Perl/time-a-function-2.pl
Normal file
|
|
@ -0,0 +1,26 @@
|
|||
sub cpu_time {
|
||||
my ($user,$system,$cuser,$csystem) = times;
|
||||
$user + $system
|
||||
}
|
||||
|
||||
sub time_it {
|
||||
my $action = shift;
|
||||
my $startTime = cpu_time();
|
||||
$action->(@_);
|
||||
my $finishTime = cpu_time();
|
||||
$finishTime - $startTime
|
||||
}
|
||||
|
||||
printf "Identity(4) takes %f seconds.\n", time_it(sub {@_}, 4);
|
||||
# outputs "Identity(4) takes 0.000000 seconds."
|
||||
|
||||
sub sum {
|
||||
my $x = shift;
|
||||
foreach (0 .. 999999) {
|
||||
$x += $_;
|
||||
}
|
||||
$x
|
||||
}
|
||||
|
||||
printf "Sum(4) takes %f seconds.\n", time_it(\&sum, 4);
|
||||
# outputs "Sum(4) takes 0.280000 seconds."
|
||||
Loading…
Add table
Add a link
Reference in a new issue