in reply to
Re: Triangle Numbers Revisited
in thread Triangle Numbers Revisited
FoxtrotUniform,
The trouble with selecting a single number to benchmark from is that it may favor one method over the other. With this in mind, I created another rudimentary benchmark that shows the two methods are fairly equal:
First generate 5,000 random numbers between 1 .. 5_000_000
$ cat gen_targets.pl
#!/usr/bin/perl
use strict;
use warnings;
my $file = $ARGV[0] || 'targets.txt';
open (OUTPUT, '>', $file) or die "Unable to open $file for writing : $
+!";
print OUTPUT int rand 5_000_000, "\n" for 1 .. 5_000;
Next, I just modified our 2 scripts as follows:
my $file = $ARGV[0] || 'targets.txt';
open (INPUT, '<', $file) or die "Unable to open $file for reading : $!
+";
while ( <INPUT> ) {
chomp;
get_three( $_ ); # used your sub/calling convention
}
And finally, the results:
$ time ./lr.pl
real 1m0.706s
user 1m0.416s
sys 0m0.080s
$ time ./fu.pl
real 1m0.791s
user 1m0.326s
sys 0m0.220s
I haven't spent any time thinking about optimizations, but if I come up with any tomorrow I will post it along with a "real" benchmark.