Hello,

l...@gnu.org (Ludovic Courtès) writes:

>     ("subr.bm: subr invocation: simple subr" 700000 total 0.98)
>     ("subr.bm: subr invocation: generic subr" 700000 total 1.39)
>     ("subr.bm: subr invocation: generic subr with rest arg" 700000 total 1.32)
>     ("subr.bm: subr invocation: generic subr with rest arg and 3+ parameters" 
> 700000 total 1.63)

"Interestingly", this is roughly twice as slow as 1.8 (!).

After some manual bisecting, I found the offending commit (dated
2008-08-16):

  
http://git.savannah.gnu.org/cgit/guile.git/commit/?id=82ae1b8eb3413e6be6bd2aa032986fc7782e85ac

Right before this commit we get:

  ("subr.bm: subr invocation: simple subr" 700000 total 0.58)
  ("subr.bm: subr invocation: generic subr" 700000 total 0.96)
  ("subr.bm: subr invocation: generic subr with rest arg" 700000 total 0.91)
  ("subr.bm: subr invocation: generic subr with rest arg and 3+ parameters" 
700000 total 1.05)

which is comparable with 1.8 (slightly slower).

With 1.8, we get:

  ("subr.bm: subr invocation: simple subr" 700000 total 0.52)
  ("subr.bm: subr invocation: generic subr" 700000 total 0.86)
  ("subr.bm: subr invocation: generic subr with rest arg" 700000 total 0.79)
  ("subr.bm: subr invocation: generic subr with rest arg and 3+ parameters" 
700000 total 0.93)

With BDW-GC HEAD (i.e., after gsubr optimizations), we have:

  ("subr.bm: subr invocation: simple subr" 700000 total 0.65)
  ("subr.bm: subr invocation: generic subr" 700000 total 0.78)
  ("subr.bm: subr invocation: generic subr with rest arg" 700000 total 0.79)
  ("subr.bm: subr invocation: generic subr with rest arg and 3+ parameters" 
700000 total 1.07)

Strangely enough, the "simple subr" case, which is not GC-intensive, is
slower with BDW-GC.  This needs further investigation...

Thanks,
Ludo'.



Reply via email to