ReSharper in a separate process?

I've been using ReSharper for a few years, but with R# 7, the performance has gotten so poor that I have to keep it disabled 90% of the time and only enable it when I need to use one of it's features. It causes Visual Studio to hang constantly in all but the most trivial of solutions. Other VS extensions solve this issue by using their own processes to do work. For example, I also use Visual SVN, which uses its own process, and I've never once had VS hang up while waiting for it to do something.

Are there any plans to put R# in its own process? If not, I strongly suggest it is something that should be considered. Having an unresponsive UI in VS because of R# being a performance pig really decreases productivity, exactly the opposite of what R# is supposed to be for.

5 comments
Comment actions Permalink

Hello Sam,

Obviously, ReSharper is doing its work in a separate threads from the main VS one, as well there are optimizations for a kind of multi-threading actions and environments.

So, any information about this issue will be much appreciated.

1.  What is the hardware configuration of the PC with ReSharper? What Windows version are you using?

2.  Could you describe your solution structure: how many projects and files are there, what type of files do you use, etc.?

3.  Have you noticed any exact features/scenarios that are making Visual Studio to slow down (like, typing, unit testing, etc.)?

4.  Are there any other 3rd-party Visual Studio extensions installed?

Thank you.

0
Comment actions Permalink

I'm not familiar with the current architecture of R#, but there's clearly something wrong with it. Turn on R# and VS hangs constantly as ReSharper processes and reprocesses with every keystroke,  file added or reverted, project loaded, etc. R# also can use a ton of memory, which exacerbates the fact that VS doesn't have a 64 bit version. It should run in a separate process like some other popular extensions do.

To answer your questions:

1. Neither of these matter. I get the same problems on multiple machines (I regularly use 3), two of which are brand new 12 CPU machines.
2. This doesn't seem to matter much either. We have a semi-large solution (~40 projects), which has Silverlight, WPF, WinForms, Web Apps, SharePoint, and Class Libraries. Nothing exotic. However, I've experienced the exact same problems with a much smaller solution of ~7 projects.
3. Typing in any language- C#, JavaScript, XAML sometimes causes big slowdowns. Invoking Intellisense/AutoCompletion causes extended hanging. Adding/reverting files/projects causes extended hanging. Navigating between files causes hanging! Even starting VS causes hanging. VS 2012 loads projects asynchronously, which is completely negated by R# processing them all synchronously- making the UI hang. Suspending R# makes all these problems instantly disappear.
4. Yes, but again, these don't matter. I've tried R# on a fresh install with no other extensions installed and the same problems.

Doing a quick search and it's fairly obvious you guys have been receiving complaints about performance problems, especially with larger solutions, for a long time. I'm quite sure this isn't a matter of just fixing a small bug here and there. I'm also sure that you're doing some kind of multithreading, but there's clearly an architecture problem as there's no arguing that R# hangs the UI.

Your competitor JustCode uses a separate process. Are there any plans for this to happen?

1
Comment actions Permalink

Hi Sam,

Thank you for the detailed description. By the way - I forgot one of the main questions: which ReSharper version do you use? Is it ReSharper 7.0.1, or one of the older versions?

0
Comment actions Permalink

Sam,

Could you please help us to determine the cause of the issue by profiling Visual Studio for us?

In the ReSharper 7.0.1 you may do that straight away with 'ReSharper | Help | Profile Visual Studio'. This action will start the profiling of the VS immediately - after you finish doing the repro actions, please press the 'Get Snapshot' button in the dialog.

After profiling is complete, you 'll be able to upload the snapshot to our FTP server, so we could investigate it to provide a solution and/or bugfix for the performance issues.

Thank you for doing some profiling for us!

P.S. It is still not answering your question regarding the standalone thread, but still it may help us to determine the cause of the perf. problems.

0

Please sign in to leave a comment.