Skip to content
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

Neovim's performance is unusable after 1.6 #111

Open
FuzzOli87 opened this issue Jan 22, 2016 · 12 comments
Open

Neovim's performance is unusable after 1.6 #111

FuzzOli87 opened this issue Jan 22, 2016 · 12 comments

Comments

@FuzzOli87
Copy link

Hello!

In your performance section, you suggest that people that are having issues with performance. I've been using Neovim for about a year and a half now and I have many of the same performance issues that have been reported. Slowdown when scrolling through comment sections and when cursorline is active.

Is there something that I should know about how I configure Neovim?

@FuzzOli87
Copy link
Author

I ran jelera/vim-javascript-syntax instead of yajs.vim and the performance bugs are gone. It was not this slow before I did an update today. Last time I ran an update was about three days ago on my linux machine. Before, I had cursorline on and scrolled up and down comments with no issues. Now it's slow to even open a JS file.

@FuzzOli87
Copy link
Author

After fiddling with it, Everything after the 1.6 update bogs down Neovim. Not just minor scrolling but every other action. Opening Unite is slow. Doing :PlugUpdate was slow just updating the buffer. Nerdtree was super slow as well.

I tried various commits after 1.6 to see if it was something in between there. But no, the WebIDL update completely killed performance for me and made Neovim unusable. I reverted to commit for 1.6 and it works like before.

If you need anything for debugging let me know and I'll be happy to provide. I know 2.0 is on beta but I didn't realize I was using it when I did PlugUpdate.

@FuzzOli87 FuzzOli87 changed the title Neovim does not improve performance Neovim's performance is unusable after 1.6 Jan 22, 2016
@bwot
Copy link

bwot commented Jan 24, 2016

2.0 - That explains why I've been having issues for a couple of days then!
Easy with vim-plug:
Plug 'othree/yajs.vim', { 'tag': '1.6' }

@othree
Copy link
Owner

othree commented Jan 25, 2016

I have a quickfix to change the web keywords to the old defs.
Could you help to see any change.

My env don't have much difference between 1.6 and 2.0.
Maybe I should use option to let user switch the defs.

@FuzzOli87
Copy link
Author

@bwot Yes, vim-plug made it pretty easy. Are you having similar slowdown? I'm not even sure why it gets so ridiculously slow.

@othree I'm not familiar with what he WebIDL does as opposed to he old defs. Just from looking at he commit, it looks like just changed to references the syntax engine uses to determine what is what in a file type. (Keyword, reserved word, etc) is this correct?

@bwot
Copy link

bwot commented Jan 25, 2016

@FuzzOli87 Maybe not slow, but wonky in lack of a better word to describe it. I just redid my whole neovim config so not really sure what's what, but going back to 1.6 seems to have made things better.

Also had troubles in 2.0 with comments not always being greyed out if I didn't end the previous line with a semicolon (which I don't do). But that is another issue waiting to be opened.

@Starefossen
Copy link

Starefossen commented Jun 8, 2016

I am having performance issues with several consecutive // comments like this:

// Qui autem deleniti sint. Id recusandae dolorem officiis molestiae non aperiam 
// officia. Et provident exercitationem quis sit dolor. Velit eveniet nesciunt   
// omnis molestiae voluptas. Unde eaque alias eum.  Earum ut reiciendis id est.  
// Dolores placeat atque dolorem fugit. Vitae quia perferendis tempore.          
// Assumenda impedit tempore est in atque expedita. Occaecati iure cumque et.    
// Soluta magni quia sunt.  Amet quod quae veritatis aut voluptas. Animi magnam  
// temporibus quos tempore doloremque qui molestiae. Cumque nisi velit           
// consequatur praesentium. Perferendis fugiat maiores consectetur reprehenderit 
// excepturi. Dolores corporis magnam natus voluptatem praesentium deserunt      
// rerum minima. Architecto explicabo nisi iusto.                                

Seams to have much better performance when using a /* */ comment block:

/*
// Qui autem deleniti sint. Id recusandae dolorem officiis molestiae non aperiam 
// officia. Et provident exercitationem quis sit dolor. Velit eveniet nesciunt   
// omnis molestiae voluptas. Unde eaque alias eum.  Earum ut reiciendis id est.  
// Dolores placeat atque dolorem fugit. Vitae quia perferendis tempore.          
// Assumenda impedit tempore est in atque expedita. Occaecati iure cumque et.    
// Soluta magni quia sunt.  Amet quod quae veritatis aut voluptas. Animi magnam  
// temporibus quos tempore doloremque qui molestiae. Cumque nisi velit           
// consequatur praesentium. Perferendis fugiat maiores consectetur reprehenderit 
// excepturi. Dolores corporis magnam natus voluptatem praesentium deserunt      
// rerum minima. Architecto explicabo nisi iusto.                                
*/

@othree
Copy link
Owner

othree commented Jun 24, 2016

@Starefossen Thanks for your example
Sorry I don't feel any difference on my environment.
What is your environment?
vim or nvim?

@Starefossen
Copy link

I am on standard vim on Mac OS X. This is my .vimrc https://github.com/Starefossen/dotfiles/blob/master/.vimrc. I will probably be switching to nvim soon.

On 24. juni 2016, at 05:03, othree notifications@github.com wrote:

@Starefossen Thanks for your example
Sorry I don't feel any difference on my environment.
What is your environment?
vim or nvim?


You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub, or mute the thread.

@chemzqm
Copy link

chemzqm commented Dec 6, 2016

One problem I found is yajs have so many fold, since I only want to fold top level functions and class methods I removed most of them, and I get better performance.

@aminroosta
Copy link

screen shot 2017-05-20 at 5 25 42 pm

I used syntime on and syntime report, a couple of regex patterns are really slowing down nvim scrolling.

  • javascriptNumber [+-]\=\%(\d\+\.\d*\|\d\+\|\.\d\+\)\%([eE][+-]\=\d\+\)\=\>
  • javascriptArrowFuncDef [a-zA-Z_$]\k*\_s*=>
  • javascriptOpSymbols [+\-*/%\^~=<>&|?]\+
  • javascriptBlock \([\^:]\s\*\)\=\zs{
  • javascriptLabel [a-zA-Z_$]\k*\_s*:
  • javascriptTagRef `<[a-zA-Z_$][0-9a-zA-Z_$]*\ze``
  • javascriptString \z(["']\)
  • javascriptIdentifierName \<[a-zA-Z_$][0-9a-zA-Z_$]*

@maple-leaf
Copy link

It seems like turn on relativenumber will affect scrolling performance. Please check measure result on this issue posva/vim-vue#95 (comment)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

7 participants