On Wed, Feb 5, 2020 at 5:23 PM Ludovic Courtès <
address@hidden> wrote:
Weird. It would be interesting to see where the slowdown comes from.
Overall, my recollection of the 1.8 to 2.0 transition (where we
introduced libgc) is that GC was a bit faster, definitely not slower.
That said, does LilyPond happen to use lots of bignums and/or lots of
finalizers? Finalizers, including those on bignums, end up being very
GC-intensive, as discussed in my recent message. Perhaps that’s what’s
happening here, for instance if you create lots of SMOBs with a free
function.
No, I think it's because in some phases of the program, there is a lot of heap growth, with little garbage generation. This causes frequent (expensive) GCs that don't reclaim anything.