-
Notifications
You must be signed in to change notification settings - Fork 11
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
High CPU usage w/conceallevel set #39
Comments
Thank you for opening this issue!
Where is this function/what did you disable?
Hmm, I have no idea what could be causing this. Do you have any ideas/suspicions yourself as to what might be causing this? I might have to go digging through the neovim source to see what causes |
By the way, to inspect what neovim does you can use |
Also very useful |
Interesting, I don't seem to get the same level of CPU usage . . . Thank you for the gdb tips! Didn't know those things.
Currently ext_statusline is not implemented in neovim, so that's probably why; there's no way to tell Neovim that an external statusline is used (afaik). Currently, uivonim just doesn't draw the statusline. |
Maybe tell neovim you do it, but don't do it? It's ok to lie. Ok, so I've found another performance issue: the interaction of plugin "Yggdroot/indentLine" with this code: https://github.com/neovim/neovim/blob/master/src/nvim/normal.c#L1248-L1253 |
Hmm, I'm still not sure what is causing the 100% CPU usage. I can't reproduce it. |
After disabling what was causing the 2 issues above (the statusline and the indent-lines using concealed text), when I interrupt neovim randomly it is sometimes in |
After more inspection, it seems that neovim does a redraw if Mentioned code: I'll open an issue in neovim to check what's the opinion on this. |
So is there anything that needs to be handled in uivonim, or is this all an upstream issue? |
I would at least document the 2 perfomance issues on the readme, idk if you have a "before trying uivonim" section but it would be a good place to put this:
You could warn in uivonim if either of those things are set as it's causing a very scarry performance issue. First time I opened uivonim I didn't try it for more than 5 seconds. |
win_update
in neovim
I've updated the README to mention the |
First thing I noticed is that when I open uivonim I have nvim running at 100% CPU.
The first thing that jumped is that it spent a lot of time in
build_stl_str_hl
, the function that renders the statusline. I disabled the code in my config doing that, and the CPU usage dropped to ~70-80%, so any vimscript for the statusline needs to be disabled.After inspection, it seems that neovim is doing A LOT of

win_update()
even though I'm sitting still and touching nothing. When there isn't any user input, neovim shouldn't be doing anything! Maybe is there something in uivonim continuously pinging neovim? Here are a few backtraces from interrupting the running process at random moments:The text was updated successfully, but these errors were encountered: