On Sat, Jan 25, 2020 at 1:47 PM Han-Wen Nienhuys <hanw...@gmail.com> wrote:
> 7.2 seconds end-to-end includes 1.7s of GC, and 2.0s of reading/compiling SCM.
>
> On guile 1.8, with GS disabled, the end to end runtime is
>
> 3.568s including 0.33s for GC and 0.32s for reading the SCM.
>
> These timings are internally consistent: if we can do byte-compilation
> on the .scm files (which would make the SCM reading instantaneous),
> and get the GC overhead down, we'd be at the same performance level of
> GUILE 1.8.

it looks like this should be fixable. The problem is that GC doesn't
know how to scale the heap. When we are compiling things, we allocate
a lot of new data, but do not generate much garbage. This makes GC
waste a lot of time in trying to marking objects, without reclaiming
any garbage.

You can observe the difference by setting eg.

  GC_INITIAL_HEAP_SIZE=200M

-- 
Han-Wen Nienhuys - hanw...@gmail.com - http://www.xs4all.nl/~hanwen

Reply via email to