[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: How to add pseudo vector types
From: |
Stephen Leake |
Subject: |
Re: How to add pseudo vector types |
Date: |
Fri, 23 Jul 2021 19:57:32 -0700 |
User-agent: |
Gnus/5.13 (Gnus v5.13) Emacs/28.0.50 (windows-nt) |
Eli Zaretskii <eliz@gnu.org> writes:
>> From: Clément Pit-Claudel <cpitclaudel@gmail.com>
>> Date: Wed, 21 Jul 2021 12:54:16 -0400
>>
>> On 7/21/21 12:29 PM, Stephen Leake wrote:
>> > Yes, for both tree-sitter and wisi. wisi can take even longer if lots of
>> > error correction is required (I have a time-out set at 5 seconds). But
>> > that happens when the file is first opened; I doubt any user would start
>> > typing that fast. I know I typically take a while to just look at the
>> > text, and then navigate to the point of interest.
>>
>> I'm not sure. We've had significant complaint in Flycheck for freezing
>> Emacs for <1s
>
> How much "less"? Close to 1 sec is indeed annoying, but 20 msec or so
> should be bearable.
>
> You seem to assume up front that TS (re)-parsing will take 1 sec, but
> AFAIK there's no reason to assume such bad performance.
This is for the initial parse, on a large file. No matter how fast the
parser is, I can give you a file that takes one second to parse, and
some user will have such a file (the work always expands to consume all
the resources available).
I just got incremental parse working well enough to measure it; in the
largest Ada file I have (10,000 lines from Eurocontrol):
initial parse: 1.539319 seconds
re-indent two lines: 0.038999 seconds
39 milliseconds for re-indent is just slow enough to be noticeable; I still
have algorithms to convert to be as incremental as possible.
The initial parse includes sending the full file text to the external
process over a pipe. Parsing that same large file with the command-line
parser (no emacs involved; file is memory-mapped) takes only 0.190
seconds, so there is lots of room for optimization - moving to a module
with direct access to the emacs buffer should do a lot.
In a very small file:
initial 0.000632 seconds
re-indent 0.000942 seconds
Easily fast enough to keep up with the user.
I don't have a direct comparison of tree-sitter and wisi parsing the
same file; I'll have to see if I can set that up.
--
-- Stephe
- Re: How to add pseudo vector types, (continued)
- Re: How to add pseudo vector types, Eli Zaretskii, 2021/07/17
- Re: How to add pseudo vector types, Clément Pit-Claudel, 2021/07/20
- Re: How to add pseudo vector types, Eli Zaretskii, 2021/07/21
- Re: How to add pseudo vector types, Clément Pit-Claudel, 2021/07/21
- Re: How to add pseudo vector types, Eli Zaretskii, 2021/07/21
- Re: How to add pseudo vector types, Clément Pit-Claudel, 2021/07/22
- Re: How to add pseudo vector types, Eli Zaretskii, 2021/07/22
- Re: How to add pseudo vector types, Stephen Leake, 2021/07/21
- Re: How to add pseudo vector types, Clément Pit-Claudel, 2021/07/21
- Re: How to add pseudo vector types, Eli Zaretskii, 2021/07/21
- Re: How to add pseudo vector types,
Stephen Leake <=
- Re: How to add pseudo vector types, Óscar Fuentes, 2021/07/23
- Re: How to add pseudo vector types, Eli Zaretskii, 2021/07/24
- Re: How to add pseudo vector types, Stephen Leake, 2021/07/25
- Re: How to add pseudo vector types, Eli Zaretskii, 2021/07/24
- Re: How to add pseudo vector types, Stephen Leake, 2021/07/25
- Re: How to add pseudo vector types, Clément Pit-Claudel, 2021/07/23
- Re: How to add pseudo vector types, Stephen Leake, 2021/07/21
- Re: How to add pseudo vector types, Clément Pit-Claudel, 2021/07/22
- Re: How to add pseudo vector types, Stefan Monnier, 2021/07/17
- Re: How to add pseudo vector types, Eli Zaretskii, 2021/07/17