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'.