bug-gnu-emacs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

bug#60691: 29.0.60; Slow tree-sitter font-lock in ruby-ts-mode


From: Dmitry Gutov
Subject: bug#60691: 29.0.60; Slow tree-sitter font-lock in ruby-ts-mode
Date: Wed, 11 Jan 2023 14:12:06 +0200
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:102.0) Gecko/20100101 Thunderbird/102.4.2

On 10/01/2023 19:50, Juri Linkov wrote:
Is it common to try to highlight 1000 or even 100 files in one diff?
100 is rare, but tens is pretty common, so this problem affects
only this specific case.

So it's a 0,8-3s delay in those cases? That's not ideal.

The delay is noticeable, alas.

Right. I'm somewhat worried for the processing speed xref--collect-matches too. But that's probably only going to be noticeable after we add syntax-propertize-function to ruby-ts-mode.

I noticed that while most library files are small, e.g.
libtree-sitter-c.so is 401,528 bytes,
libtree-sitter-ruby.so is 2,130,616 bytes
that means that it has more complex logic
that might explain its performance.

ruby is indeed one of the larger ones. Among the ones I have here compiled,
it's exceeded only by cpp. 2.29 MB vs 2.12 MB.

The winner is libtree-sitter-julia.so with 7.25 MB.
But regarding libtree-sitter-cpp.so I confirm it's 2.3 MB.
And c++-ts-mode is even faster than c-ts-mode.

Yep.

On the same admin/alloc-colors.c:

c-mode
(33.378821569 1500 17.632000617)

c-ts-mode
(2.1949608069999997 34 0.4119784769999981)

c++-ts-mode
(2.0979403910000003 34 0.39749122499999956)

So size doesn't matter.






reply via email to

[Prev in Thread] Current Thread [Next in Thread]