[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
bug#54698: non-recursive GC marking [PATCH]
From: |
Andrea Corallo |
Subject: |
bug#54698: non-recursive GC marking [PATCH] |
Date: |
Mon, 04 Apr 2022 14:32:51 +0000 |
User-agent: |
Gnus/5.13 (Gnus v5.13) Emacs/28.0.50 (gnu/linux) |
Mattias Engdegård <mattiase@acm.org> writes:
> The GC uses recursion to traverse data structures for marking which
> imposes a limit to how big (or deeply nested) Lisp data structures can
> be, and usually results in an immediate Emacs crash without warning
> when that limit is exceeded.
>
> The attached patch replaces recursion with an explicit stack for most
> common object types: conses, vectors, records, hash tables, symbols,
> functions etc. Recursion remains for some less common types (buffers,
> frames etc) but these are typically not used in quantities to cause a
> problem.
>
> A side benefit is that GC becomes quite a bit faster as a result. Actual
> workloads such as byte-compilation are consequently sped up by a small but
> measurable amount.
Hi Mattias,
do you have any other performance measure for cases different than the
one mentioned?
Thanks
Andrea
- bug#54698: non-recursive GC marking [PATCH], (continued)
- bug#54698: non-recursive GC marking [PATCH], Lars Ingebrigtsen, 2022/04/08
- bug#54698: non-recursive GC marking [PATCH], Po Lu, 2022/04/08
- bug#54698: non-recursive GC marking [PATCH], Lars Ingebrigtsen, 2022/04/08
- bug#54698: non-recursive GC marking [PATCH], Po Lu, 2022/04/08
- bug#54698: non-recursive GC marking [PATCH], Lars Ingebrigtsen, 2022/04/08
- bug#54698: non-recursive GC marking [PATCH], Phil Sainty, 2022/04/08
- bug#54698: non-recursive GC marking [PATCH], Eli Zaretskii, 2022/04/08
bug#54698: non-recursive GC marking [PATCH],
Andrea Corallo <=