Hello.

I created boehm_gc branch for... ahem.. bringing Boehm GC to Parrot. It's almost work. Unfortunately it's _slower_ than current naive mark&sweep GC in Parrot. Some results here

ba...@icering:~/src/parrot$ time ./parrot --gc=boehm ext/nqp-rx/nqp-rx.pbc fib.nqp
fib(28) = 317811

real    0m18.534s
user    0m16.673s
sys     0m1.372s

ba...@icering:~/src/parrot$ time ./parrot ext/nqp-rx/nqp-rx.pbc fib.nqp fib(28) = 317811

real    0m16.166s
user    0m15.565s
sys     0m0.120s

ba...@icering:~/src/parrot$ cat fib.nqp
  sub fib($n) {
      ($n < 2) ?? $n !! fib($n-1) + fib($n-2);
  }

  my $N := 28;

  pir::say("fib($N) = " ~ fib($N));


I'm not quite familiar with Boehm GC, but my expectations were very different. Looks like it doesn't reclaim any memory and marking it on any GC_MALLOC call.

So, I need help to understand what's going on.

(BTW, branch passing almost all coretests except VTABLE_destroy based FileHandle and NCI.)

--
Bacek
_______________________________________________
http://lists.parrot.org/mailman/listinfo/parrot-dev

Reply via email to