[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Gap buffer problem?
From: |
Gerd Möllmann |
Subject: |
Re: Gap buffer problem? |
Date: |
Wed, 11 Dec 2024 10:35:29 +0100 |
User-agent: |
Gnus/5.13 (Gnus v5.13) |
Pip Cet <pipcet@protonmail.com> writes:
> Gerd Möllmann <gerd.moellmann@gmail.com> writes:
>
>> Pip Cet via "Emacs development discussions." <emacs-devel@gnu.org>
>> writes:
>>
>>> On Tuesday, December 10th, 2024 at 13:39, Óscar Fuentes <ofv@wanadoo.es>
>>> wrote:
>>>> Eli Zaretskii eliz@gnu.org writes:
>>>> > Maybe so, but why is such a long wait a problem? GC works, and
>>>> > works well.
>>>>
>>>> Working on certain projects with lsp-mode is a miserable experience due
>>>> to all the random pauses.
>>>
>>> To be fair, part of that may be the gap buffer problem rather than GC.
>>
>> Could you please tell more about the gap buffer problem?
>
> Just anecdotes, I'm afraid. My problem was a large buffer of test
> descriptions for a programming language, and I was running the tests and
> modifying the buffer to contain the output for each test in a block
> after the test itself. That worked, but running several tests in
> parallel, moving back and forth in the buffer to modify text as the
> output came in ... not so much.
>
> I also recall discussion somewhere (nullprogram.com, maybe) about
> multiple cursors and the gap buffer, and that's also a potential use
> case where the gap buffer would make things very slow.
Thanks.
>
>> I've read a little about the tradeoffs between gap buffers, piece
>> tables, ropes, but I'm wondering if there is something concrete already
>> known for sure that is a performance problem in Emacs. Maybe a bug that
>> has been analyzed or something.
>
> I'd be very interested in such a bug. Replacing the gap buffer
> assumption is quite hard: IIRC, the main problem is that the regexp code
> has been hacked to support gap buffers but not other data structures, so
> we'd need to do something about that.
>
>> (I'm asking because I just recently encountered a performance problem
>> when adding something to xdisp.c:27339 (with cc-mode, Eglot, Corfu), and
>> editing there was so slow that it was absolutely no fun, and that on a
>> an M1 pro. Haven't investigated the reason.)
>
> Interesting. It may be worth it to try reproducing that and disabling
> modes one by one to find out which one is at fault. I suspect that it's
> overlays/the interval tree rather than the gap buffer per se (however,
Yeah, maybe I'll investigate that further at some point, not sure. I did
try with VSCode and Zed now, though, for no good reason. They don't have
a problem.
> if we ever replace the gap buffer code, we should make sure its
> replacement actually handles buffer text and text properties/intervals
> in an integrated manner, rather than storing just buffer text).
>
> Pip
And if I may add a wish to the future author: Make whatever you use
persistent data structures, so that one could think of letting redisplay
run concurrently. Really! :-)
- Re: pdumper on Solaris 10, (continued)
- Re: pdumper on Solaris 10, Eli Zaretskii, 2024/12/10
- Re: pdumper on Solaris 10, Óscar Fuentes, 2024/12/10
- Re: pdumper on Solaris 10, Eli Zaretskii, 2024/12/10
- Re: pdumper on Solaris 10, Óscar Fuentes, 2024/12/10
- Re: pdumper on Solaris 10, Eli Zaretskii, 2024/12/10
- Re: pdumper on Solaris 10, Pip Cet, 2024/12/10
- Re: pdumper on Solaris 10, Óscar Fuentes, 2024/12/10
- Re: pdumper on Solaris 10, Eli Zaretskii, 2024/12/10
- Gap buffer problem?, Gerd Möllmann, 2024/12/11
- Re: Gap buffer problem?, Pip Cet, 2024/12/11
- Re: Gap buffer problem?,
Gerd Möllmann <=
- Re: Gap buffer problem?, Pip Cet, 2024/12/11
- Re: Gap buffer problem?, Gerd Möllmann, 2024/12/11
- Re: Gap buffer problem?, Pip Cet, 2024/12/11
- Re: Gap buffer problem?, Gerd Möllmann, 2024/12/11
- Re: Gap buffer problem?, Eli Zaretskii, 2024/12/11
- Re: Gap buffer problem?, Gerd Möllmann, 2024/12/11
- Re: Gap buffer problem?, Robert Pluim, 2024/12/11
- Re: Gap buffer problem?, Gerd Möllmann, 2024/12/11
- Re: Gap buffer problem?, Eli Zaretskii, 2024/12/11
- Re: Gap buffer problem?, Pip Cet, 2024/12/11