emacs-devel
[Top][All Lists]
Advanced

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

Re: Enabling native compilation by default when libgccjit is present


From: Dmitry Gutov
Subject: Re: Enabling native compilation by default when libgccjit is present
Date: Mon, 6 Dec 2021 15:59:21 +0300
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:78.0) Gecko/20100101 Thunderbird/78.13.0

On 06.12.2021 05:50, Jim Myhrberg wrote:
Especially in larger Ruby RSpec test files (over 400-500 lines), where each 
keystroke could take somewhere around 100-1000ms to register. Native-comp 
solved all of that for me, with everything being fast and responsive, even 
those worst case scenario RSpec files.

Was that with lsp-mode enabled?

Because otherwise, I routinely edit RSpec files longer than that, with no 
sluggishness like the one you described.

I having lsp-mode on or off didn’t really have much of an effect, and I’d had 
performance issues since before lsp-mode existed. Though the biggest 
performance killer in long heavily indented rspec files was the 
highlight-indent-guides package. But even with that turned off, various 
operations were still pretty slow most of the time, specially inserting a new 
line which would often take a good 300-500ms on those problematic files.

highlight-indent-guides sounds like it could have an impact indeed, if it recomputes indentation for every displayed line on every keypress.

Although reindenting a screen-ful takes about 120ms here, not anything close to 1s. And that's without native compilation.

Admittedly, I’ve not really tried running Emacs without native-comp for nearly 
a year, and it was nearly 18 months ago I started using native-comp builds. I’m 
curious now though, so I’ll create a local master build without native comp 
tomorrow and see how it behaves.

If native-comp helps (which would be natural, given that all indentation code is in Lisp), it might be good enough. But it might be worthwhile to find the exact bottlenecks and file the corresponding issues. Maybe in the aforementioned package. Maybe against ruby-mode. Maybe somewhere else.



reply via email to

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