Performance Problems: An Alternative view and Solution moving caches out of process

Everyone knows about the complains about Resharper performance, a lot of work is done on that area and now Resharper is a ton faster than years ago.
But also has a ton more features, so we understand that all the quick fixes, super intellisense must be processed and is ok.

The problem is that now, VS2012 is working pretty fast, mostly opening big solutions, reducing the typing lag (with Resharper typing is never delayed, when you install resharper, it gets noticiable some times)


Let me try to exaplain a bit the idea to speed up the things


  • Today machines a ton of developers have 8Gb or more.
  • Most of the has only one visual studio with resharper open
  • The theorical max mem that can be used in VS (with R#) is 2Gb
  • A lot of memory is wasted and resharper is working with the caches from disk (Of course that windows will use free memory for file cache, but this idea go beyond that)
Problem

So we have plenty of GB to be used by resharper for the cache handling and is wasted

Idea:

I think that you must creat a Resharper Cache Service (with some settings about memory usage, pinned solutions, etc)

That service will be the responsable to read, parse and store all the cache information that Resharper needs

Using this approach the Cache Service can be a 64bit program that use all the free memory that it can, for example 4Gb in the example.

Advantages:

  • Most Important: The cache parsing will survive to Visual Studio restarts, so if I reopen Visual Studio, R# connects to the Cache Service and (with out ANY Disk IO or parsing) it gets them.
  • Speed up visual studio start up and time to code
  • Reduce the memory presure on Visual Studio
  • Reduce the cpu usage of Vs because all the loading and parsion of cache is done in parallel in a separate process
  • Reduce the duplicated caches for same projects (we work with multiple solutions all of them with a project App.Common, with this approach you get all it cached only once)

  • I think tan a ton more
If you want I can explain a bit more the idea here or by mail
I understand that implementing this idea can be a bit hard but is a big change in the way that resharper can perform

Thanks for making our developer life happier :)

PS: Related issue created:
http://youtrack.jetbrains.com/issue/RSRP-326367

Please sign in to leave a comment.