Re: NQP JVM prototype faster than Perl 5

2013-02-03 Thread Nicholas Clark
On Sat, Feb 02, 2013 at 06:32:10PM -0800, Matthew Wilson wrote:
 Did you mean to use $z in the say output of the nqp and perl versions of
 the microbenchmark, or did you mean to run it twice?

I didn't write the nqp microbenchmark, and I simply transcribed it to
Perl 5, so it's intentional. I didn't spot it, thanks for noticing.

It doesn't actually change the numbers, because the timing is still for one
call. But it does cause the program to do a lot less work to get there.

$ cat ~/Perl/rakudo/nqp/examples/fib.nqp
#! nqp

sub fib($n) {
$n  2 ?? $n !! fib($n-1) + fib($n - 2);
}

my $N := @ARGS  1 ?? @ARGS[1] !! 29;

my $t0 := nqp::time_n();
my $z  := fib($N);
my $t1 := nqp::time_n();

nqp::say(fib($N) = $z);
nqp::say(time=  ~ ($t1-$t0));
$ nqp ~/Perl/rakudo/nqp/examples/fib.nqpfib(29) = 514229
time= 3.2875030040741
$ nqp nqp-jvm-cc.nqp ~/Perl/rakudo/nqp/examples/fib.nqp
fib(29) = 514229
time= 0.3913242492676



and Perl 5:



$ cat ~/test/fib.pl 
#! perl

use Time::HiRes 'time';

sub fib {
my $n = shift;
$n  2 ? $n : fib($n-1) + fib($n - 2);
}

my $N = @ARGV  1 ? $ARGV[0] : 29;

my $t0 = time;
my $z  = fib($N);
my $t1 = time;

print fib($N) = $z\n;
print time=  . ($t1-$t0) . \n;
$ ~/Sandpit/5162/bin/perl5.16.2 ~/test/fib.pl
fib(29) = 514229
time= 0.5503830909729

Nicholas Clark


Re: NQP JVM prototype faster than Perl 5

2013-02-03 Thread Nicholas Clark
On Sun, Feb 03, 2013 at 10:35:12AM +, Nicholas Clark wrote:
 On Sat, Feb 02, 2013 at 06:32:10PM -0800, Matthew Wilson wrote:
  Did you mean to use $z in the say output of the nqp and perl versions of
  the microbenchmark, or did you mean to run it twice?
 
 I didn't write the nqp microbenchmark, and I simply transcribed it to
 Perl 5, so it's intentional. I didn't spot it, thanks for noticing.

not intentional. Oops

Nicholas Clark