Skip to content
This repository

high CPU load #510

Closed
kyrisu opened this Issue April 26, 2011 · 6 comments

2 participants

kyrisu Jared Parsons
kyrisu

After upgrading to version 0.9.6 the CPU load on devenv jumped considerably.
I was disabling extensions one by one and discovered that vsvim itself is responsible.

Please what info I can provide to help solving the issue.

Jared Parsons
Owner

Can you give me a bit more information on what you're doing when the CPU load increases? Is it when Visual Studio is just idling or is there a specific set of operations that is causing a problem?

kyrisu

Visual Studio is just idling.
I was testing it as follows:
1. I turned on Visual studio with vsvim enabled - so far so good (devenv idle at max 5% CPU)
2. I open my project with no files opened - (no change.. max 5% CPU)
3. I open 1st file - CPU usage jumps to 50%

Opening more files doesn't change much and I also didn't start editing the files yet.

When I disable all other plugins (except CodeMaid that I can only uninstall) the situation is the same.

As before - if I can provide any other info / help please ask.
I'm writing lots of jjjjj, kkkkk, www, bbb etc. in my code without vsvim :/

Jared Parsons
Owner

That's odd. VsVim typically doesn't do any actions on idle and hence I wouldn't expect it to cause this problem. Here's a couple more questions

  • Try removing your .vimrc and seeing if that fixes the issue
  • What language is the project in
  • Does this happen for one particular file or all files?
  • Does this repro if VsVim is the only active plugin?
kyrisu

I've isolated the issue - the files that I was opening are quite big (~1700 lines of code) - I know it's bad design / coding but it's not my code so I'm excused :P
Usually the methods in this file / class are collapsed to definition (Ctrl+M, O) - devenv CPU usage jumps to 50%,
but when I expand everything (Ctrl+M,Ctrl+X) CPU usage drops to 0% :D

Conclusion - VsVim is having a hard time dealing with lots of collapsed blocks of code, which is not really an issue if you follow a good design guidelines and use small code files.

Please close this issue if you want :) Thank you for a great plugin.

Jared Parsons
Owner

Ah, thanks for tracking it down to an issue with outlining. I can get a repro of the problem now.

What's happening here is VsVim's support for external editor actions (like Reshaprer and Visual Studio Snippets) is getting in the way. One way external editor actions are monitored is by looking at the annotations / tags they put onto the visible screen. R# and Snippets for example tag text in a very specific way which can be queried in the Visual Studio API. So on every layout change VsVim will scan the visible text for these tags and take appropriate actions to integrate well with the edits it finds.

The visible screen is rarely bigger than 80-100 lines. Getting the tags for that small of a line range is very fast. VsVim wasn't filtering out collapsed regions though so in the collapsed case it was getting tags for thousands and thousands of lines. That's much too slow.

I'm working on a fix for this. It will definitely be included in 1.0. If it turns out to be small enough I may release it as a hot fix to 0.9.6.

Thanks for reporting this!

Jared Parsons
Owner

Fixed in the next version.

Jared Parsons jaredpar closed this May 11, 2011
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Something went wrong with that request. Please try again.