> At 04:10 PM 11/5/2003 -0700, Luke Palmer wrote:
> >Actually that was pretty good for an early version.  You could help IMCC
> >out by not creating those PerlUndefs until you're going to assign to
> >them.
> 
> Also, anytime you use a temporary to assing a constant literal, you
> should be able to use a I/S/N reg. Parrot's ops are polymorphic
> so you should have a lot of flexibility even with the basic types.
> 
> >Vtable jump isn't really that much overhead in a language like C.
> >Parrot's already running pretty fast.  We're making things fast by
> >keeping it in mind while implementing it, including a rich opcode
> >and vtable so the number of said slow dispatches are small, among other
> >various things that I don't know.  Maybe Dan will chime in here :-)
> 
> Thies, have you actually benchmarked your sample
> with JIT against PHP?
> 

A bench with a mandelbrot set of depth 500 (script attached)::

php mandel2.php  1.93s user 0.01s system 76% cpu 2.552 total
../../parrot/parrot mandel.imc  1.08s user 0.02s system 41% cpu 2.643 total
../../parrot/parrot -j mandel.imc  0.77s user 0.01s system 57% cpu 1.368 total


Is the result.

> >It's great that you're doing PHP for Parrot.
> >
> >Luke
> 
> Darn right!
>

Btw, incase people on the list are interested there is a presentation
about PHP and Parrot we did at http://www.edwardbear.org/pap.pdf

-Sterling

<?php
        $b = " .:,;!/>)|&IH%*#";
        $y=0; $C=0; $x=0; $c=0; $z=0; $Z=0; $t=0; $k=0; $i=0; $r=0;
  //float r, i, z, Z, t, c, C;
  for ($y=30; $C = $y*0.1 - 1.5, $y--;){
         echo "\n";
     for ($x=0; $c = $x*0.04 - 2, $z=0, $Z=0, $x++ < 75;){
        for ($r=$c, $i=$C, $k=0; $t = $z*$z - $Z*$Z + $r, $Z = 2*$z*$Z + $i, $z=$t, 
$k<500; $k++)
                if ($z*$z + $Z*$Z > 10) break;

                        echo $b[$k%16];
        }
     }
         echo "\n";
?>

Reply via email to