ReSharper 10 Speed Woes

I love ReSharper, I really do feel slightly lost when using Visual Studio and hitting Alt+Enter doesn’t offer the same code sugar rush I’ve come to expect.  But I’ve gotta say that VS2015 Update 2 with ReSharper 10.0.2 is just starting to get to a point where the marriage seems to be stagnating.

For the first time since I started using ReSharper all those years ago I’m reaching for the suspend button.  I’m regularly seeing it use such a vast amount of my CPU cycles that I just cannot justify leaving ReSharper active all the time.  There are certain problems I know work on where the syntax can structure can see the instance of of Visual Studio running ReSharper start using 80+% of my i7.

That’s a LOT of CPU grunt.  I should really also say that as far as I can tell so far Visual Studio 2015 seems to be the buggiest RTM version I have used.  I have multiple issues at the moment with no solid workaround or even much help/input from Microsoft.

The versions of tools I have here are:

  • Visual Studio 2015 (14.0.25029.00 Update 2 RC)
  • .NET 4.6.01038
  • ReSharper 10.0.2 (104.0.20151218.120627)

There is a guide provided by JetBrains for speeding up ReSharper.  You could argue that having a guide like this acknowledges there is an issue, which I think is both fair and slightly unfair.  Either way I’m a die-hard fan and even I’ve had to resort to looking over this guide and trying to arrive at a feature/usefulness balance that I can life with day-to-day.  Seeing delays of 2 seconds between key presses is the makings of pure frustration but it is what I have been seeing on occasions, at times like that ReSharper is anything but a productivity tool.

I was working on a solution the other day and was having some serious issues with the performance I was seeing, I switched from using ReSharper intellisense to using the built in Visual Studio intellisense and was genuinely shocked to see the immediate difference.  The difference in speed was actually shocking.

This is actually the first thing I would suggest people try in order to speed up their system.  It appears ReSharper is doing an awful lot of text chugging in order to arrive at some of the suggestions and naming options.  Whilst useful, in the particular section of code I was writing (View constraints in a Xamarin iOS solution) the processing was just killing my machine.

Will keep this up-to-date with anything useful I find along the way.

Share

PCL Profile 259 in Visual Studio 2012 on Windows 7, Xamarin, MvvmCross & ReSharper 7.1

Well, today was a lot of fun.  You can tell just how much fun from the ridiculous title of this blog post.

I’ve lost most of a productive day to this set of issues.  I was seeing some errors being reported by ReSharper 7.1 in my PCL and Xamarin Android solutions and couldn’t work out what the issues were.   They compiled without any compiler issues being returned and ran on the various emulators as expected, again without any issues or exceptions.  Consdering the error reported by ReSharper was Module ‘System, Version=4.0.0.0, culture-neutral’ should be referenced.  An error of that sort, if “real” should mean an application would have trouble even starting up let alone running.

resharper_errors

I’ve basically been round the houses trying to sort this out.

Considering the problem centered about MvvmCross I decided to have a look at the source for that so cloned the repository and started having a poke around.  Now the first problem you’re going to encounter given the VS2012 and Windows 7 constraints is that Windows Phone requires Windows 8 for development.  The WP8 SDKs won’t even install onto Windows 7 so those projects are dead in the water.  This target .NETPortable Profile259 which cannot be installed on Windows 7.

So when I opened the MvvmCross solutions on my machine I was seeing some very odd behaviours.  You can see some of the weirdness in the following screenshots:

mvvmcross

The Cirrious.CrossCore solution targets Profile 259 (the new Profile78 basically with Windows Phone 8.1 support thrown in – unavailable on Windows 7).  So what has been happening is any of my own projects that link to this library are trying to resolve system.dll v4.0.0.0 through Profile259.  Since I don’t have this profile ReSharper was correctly informing me of an issue but incorrectly informing that I’ll get a compiler error as a result.

In order to arrive at this solution I had upgraded ReShaper from 7.1 to 9.1 only to still see the issue.  Reinstalled all of Xamarin and even contemplated a fresh Windows install (not a small task).

The Solution

The solution turned out to be fairly simple.  Kid the system into thinking that my operating system DOES have Profile259 by copying the XML files from:

C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETPortable\v4.5\Profile\Profile78\SupportedFrameworks

Into:

C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETPortable\v4.5\Profile\Profile259\SupportedFrameworks

This doesn’t fix the issues I see when opening the MvvmCross solutions, they still compain about not finding system.dll but it has meant that my solutions that reference Cirrious.CrossCore do not throw up the problem of highlighting “non-issues” in my own projects.

So that was a hell of a learning experience.  And I did pull the trigger on an update to ReSharper 9.1 after complaining to JetBrains that 7.1 cost £110 and an upgrade to 9.1 cost £122!  So they gave me a 25% discount!  Yay!

Thanks JetBrains.

Share