ReSharper performance

Yes, this will be another post about poor performance of R#.

I've been using R# since version 4. At that time, our work solution comprised of slightly above 100 projects and it was not possible to use R# with the whole solution. But when I unloaded the projects that I did not need, I cut the number to around 30 and R# was more or less usable (but it keeps underlining the code referencing types from the unloaded projects - why, when everything compiles fine? this problem continues up until now). I was enthusiastic about R#, recommended it to my colleagues and wrote a review to support what I regarded as good product.

Each new version of R# promised improved performance, but I never noticed a big difference.

As time went by, the solution grew even more, now it is about 150 projects. When I unload those projects that I don't need, I got about 50, but R# is not usable even with this limited solution. VS get unresponsive very often and after some time of work, OutOfMemory exception begin to pop up.

I am not using R#  any more, even though I love its features. I now regret the time I spent learning to use R# effectively and lost the habit of using the built-in capabilities of VS. They lack nice features of R#, but at least they don't make VS unresponsive each once in a while.

I uninstalled R# recently. I will look for alternatives (maybe Telerik product, as is suggested in this post http://devnet.jetbrains.net/thread/432674) or just wait until MS incorporates the most critical features into Visual Studio itself.

53 comments
Comment actions Permalink

Hi

There are a number of threads about this problem. Indeed its seems the 6.1 EAP was pushed forward to at least show some alliviation of the problem.( the processing files issue)

I agree Just Code looks very promising , the guys at Telerik were very kind a while back and gave out free JC licenses to users who recommended their Just Decompile product .

I have had so many issues with R# that I have eventually had to uninstall on my production PC where I handle big solutions, including Db Projects. I am using a combination of Just Code and Whole Tomato's Visual Assist X (To make up for a lack of intellesense help in JC -- any time now they claim). They seem to lay well together.

I do appreciate trouble shooting these issues is difficult , but Jet Brains response always seems to be to send snapshots, videos , sample code etc

Its almost as if can't actually believe its their issue.

I am realtively new to R# (3 yrs) but I do smart at paying the initial V5 first licesne and then a further $ 120 for an upgrade not long after and it still limps along

My confusion is that I bought a product and I expect it to work . Sometimes I think its me then comments like yours pop up and give me some confidence to keep nagging Jet Brains.

I have tried most of the add ins over the years , and have this love hate relationship with R# , it is a superb product with lots of featured BUT , if it kills the IDE to the point of not working properly what use is it. When I uninstall I miss it , when I Install I curse it.

Another issue I don't like is that installing R# BLOCKS Just Code , it just dissaperas , so you can't even have them installed and switch betqween depending on performance needs.

It will stay uninstalled for now , until I get a warmer fuzzier feeling that all has come right.

Just Code is competing pretty well on most fronts , when intellesence appears Jet Brains must watch their market place .

Mike

0
Comment actions Permalink

Hello Jakub
     We're sorry to hear that you're having such problems with ReSharper. Yes, performance is a common problem and we're doing our best to eliminate as many performance problems as we can (you can see the list of performance problems fixed in ReSharper 6.1 here: http://youtrack.jetbrains.net/issues?q=project%3A+RSRP+%23%7BPerformance+Problem%7D+%23fixed+fix+for%3A+6.1). Have you tried ReSharper 6.1? If yes, do I understand correctly that it didn't work fast enough for you?

Andrey Serebryansky

Senior Support Engineer

JetBrains, Inc

http://www.jetbrains.com

"Develop with pleasure!"

0
Comment actions Permalink

Hello Mike
     The sole reason we ask for a snapshot or a sample solution is that we do not observe the mentioned behavior on test solutions that we have. Otherwise, it would have already been fixed. As you understand, it's almost impossible to fix a problem when there's no log information or at least some repro steps. As to "blocking" other products, there's absolutely no code in ReSharper to intentionally prevent competing products from working properly. We would really appreciate if you could find some time to try ReSharper 6.1 when it comes out. Thank you!

Andrey Serebryansky

Senior Support Engineer

JetBrains, Inc

http://www.jetbrains.com

"Develop with pleasure!"

0
Comment actions Permalink

Hi Andrey

As you can gather there is a  fair amount of frustartion in my reply

I seem to spend most of my time swapping between add ins trying to find the happy medium adding to the frustration.

The bottom line is that when it comes to the final analysis ,  R# is still the most fully featured product out there , and I inevitatbly give up and GO BACK , hence the Love Hate

It doesn't take the frustration away , if anything it makes it worse. I REALLY do want to use R# , please believe that . For all the hunting at near competitors none of em quite make the mark.

But with poor performance it just makes things worse. I am back (as ever) to R# this morning with another vow to perservere ...

WRT the Just Code block ,I appreciate its not deliberate but it is true , it may be courteous to your competitors to investigate why the clash exists and maybe work together to get around it . If for any reason I choose to Use JC instaed of R# , instead of a couple of ticks and a VS restart , its an complete install uninstall cycle, which takes time.

I am using the 6.1.29.21 EAP build currently (is their an better one ? )  and will keep monitoring

The Love Hate Continues

Mike

0
Comment actions Permalink

Hi

Sorry to gripe BUT

I have now been using VS 2008 for 2 hours just general editting and  I am on my third Unhandled Out of

Memory exception and final crash and restart of VS 2008

its showing 141 Mb Managed Memeory and 444 Mb  In Task Manager for the ide

I thought this time I would submit the error BUT my account details seem not to allow it

Mike

0
Comment actions Permalink

Hello Mike
     I understand your frustration and I really hope that we will address this problem somehow. At the moment there's build #35 that is very close to release state and that has reduced number of assertions, logging and sensitivity to errors (which in terms should lead to better performance). Could you please install that build and write back in case it doesn't help with these problems? Thank you!

Andrey Serebryansky

Senior Support Engineer

JetBrains, Inc

http://www.jetbrains.com

"Develop with pleasure!"

0
Comment actions Permalink

Hi Andrey

Downloaded and installed build #35

Loaded up VS 2008 and a  VB Project , (funnily enough a different one than has been causing problems before , so its not obviously project specific.)

VS lasted 5 mins max   -- "Resharper has encountered a fatal error - out of memeory excpetion"

I tried to copy the error message for you but VS2008 bombed before I could . I restarted in Task Mgr IDE is showing 270 Mb with Resharper suspended and 600+ enabled, 190 managed

I have only Outlook open alongside VS , I can't do less.

I am a pretty loyal R# user but you guys are doing a great job of selling your competitors products

I simply can't work like this so its uninstall until you have a stable product , I am beginiing to wonder if its IF rather than WHEN

Sorry for the downer

Mike

0
Comment actions Permalink

Hi

Managed to catch the exception , I was just generally editting , not building etc

I had to screen shot as I could copy from the dialog

Hope it points a directions

Mike



Attachment(s):
Out Of Memeory error.docx
0
Comment actions Permalink

Hello Mike
     Thank you for this information! I've logged it under http://youtrack.jetbrains.net/issue/RSRP-287280 in our tracker and our devs will look into this problem. You're welcome to monitor the status of this problem.

Andrey Serebryansky

Senior Support Engineer

JetBrains, Inc

http://www.jetbrains.com

"Develop with pleasure!"

0
Comment actions Permalink

I installed a nightly build from EAP and gave it a go. When I opened a solution, VS hang for a while and then crashed - OutOfMemory exception - before writing the first character of code. I tried again, with the same result. Good bye, R#.

0
Comment actions Permalink

Now to provide a complete opposite repsonse, I use R# with solution analysis on multiple solutions with upwards of 4 visual studios open concurrently.

I never feel like R# impacts the performance of my machine.

My largest solution is only about 50 projects however.

Maybe the real issue is that your team needs to improve how you structure code that it has 150 projects in a solution? Or maybe your business needs to provide you with better hardware to do your job? For reference we develop in Win7 x64 on quad core 3.2ghz xeons with 12GB of ram. Have never in my life seen an OOME from R# since 2008 on a Windows XP machine with only 2GB of ram. If your hardware is crap, well what do you expect.

0
Comment actions Permalink

We do have a reason to have 150 projects in a solution, believe me. I was the only developer in the company using R#, so there is no real push for anyone to do such major restructuring of the code, because everything works just fine without R#.

As for HW, I am using a dell machine with i7 CPU, 2.7GHz and 4GB Ram. Not the greatest perhaps, but if that is crap for R#, than it should say that openly in it's system requirements.

0
Comment actions Permalink

Those specs are comparable to mine other than the ram being lower. There might be reasons to have 150 projects in the solution, doesn't mean it's correct.

0
Comment actions Permalink

Hi Chris , I am really happy for you , that you can run a lovely spec PC as this

I work for a multinational corporate , PC are upgraded as part of our normal Capital Expenditure process , and we probably get a new one every 3-4 years. (99% of the company does email SAP , Web Apps and Office and needs no better)

Until literally 2 months ago , I was working on a Core 2 2.2 Ghz and 2 G of RAM. Thats it thats what you get . Add to that all the corporate baggage of network and antivirus protection etc , which takes up more resources.

A product like R# should carry a "Health Warning" if what you say is correct , "Do not even try to use our product on a Bog Standard PC"

I was upgraded in Nov , to a DELL Win 7 32 / i7 Quad 3.2 Ghz / 4G RAM/ SSHD , in anyones eyes a reasoanble PC , I still hit OOM Errors . At least this cycle my company recognised "Super Users" and we got better than the rest who got i5's

That said , how Jakub's compnay chose to structure their projects is their business , whether you or I believe it is wrong , we shouldn't have to change our ways of working to allow a product (like R#) to work.

I see memory leaks all the time while I am working which is also not right. Open Task Manager and look what memory Devenv.exe is consuming , say 400M to start with  , Now work away normally for 2-3 hrs and review the memory , its now up to 700-800 M .

Us mere mortals with 4G , only have 3G to play with anyway on win 32 and before we start with VS 2010 , Outlook and Windows , 2 GB is gone. The increase in 400 M caused by additional VS demand is a major part of our disposable memory , hence what I see and Jakub sees. As for multiple VS instances foget it , I use actively in my daily work any 2 of 2005 , 2008 and 2010, but I must manage it to run only one at a time.

I am sure that lots of factors come into play , no of projects in solution , size of individual files , how many files are open  etc. Solutio wide analysis to me is a no no , I simply turn it off because I know its going to cripple the IDE (SO why have it in the first place). My example of 400 M incresae is on a 4 project Demo Solution with about 40 classes , hardly rocket science.

I have bleated about this a lot in this forum but Jet Brains seems to not listen. I love R# dearly and feel "naked" without it , but while it is behaving like this and causing my productivity to drop NOT improve as it is designed to do , I just have to Suspend it (or uninstall it ) to carry on working effectively. And YES I do miss the functionality , but what comes first ? As an aside , if you get to the 800M stage and suspend R# , nothing changes , it still needs a restart of VS to clear the memory.

I am concerned that maybe R# has become "too fully funcioned" ( Bloated)  to the point where on normal PC's its becoming unusable , I don't think I am alone. Maybe Small Is Beautiful.

I have reviewed the opposition , and I already have a Visual Assist X license, so now I use VAX , and suffer the loss of functionality. 6.1 was promised as the panacea to all our perfrmance issues and they proudly show the list of performance issues they have fixed , I would ask why these were not identified in prelim testing. Even with these improvements ,, its clear from the comments in this forum that all is still not well in this area.

The Love Hate realtionship contiues and R# stays inactive. What a waste of money !!!

Every now and I relent and run R# , but inevitably I give up again

Mike

0
Comment actions Permalink

PS @ Andrey

Any move on the issue above , its marked as critical and has been sitting the re since well before Xmas ???

Mike

0
Comment actions Permalink

Giving developers 32bit PCs is just silly. Your company is LITERALLY pissing away money. You're losing time due to your machine not having correct resources, time lost is money lost.

The cost of a PC in comparison to a software developer is measured in hours.

"we shouldn't have to change our ways of working to allow a product (like R#) to work."

That's also a silly statement.

R# is a gigantic database that sits on top of your code, to be able to expect R# to work well when your system has no available memory to host its database because your machine has too little memory and the solution has 150 projects in it (VS itself will probably take 1GB just from that, of your total 3gb if its 32bit).

Making these kinds of statements is like making the argument that SQL server is at fault for queries failing with OOME because the machine hosting it has 1GB of ram and your query is a god query that joins in every single table in the database together.




If anything I WISH R# USED MORE MEMORY. Put more in memory, less on disk, would make everything so much faster.

0
Comment actions Permalink

Maybe JetBrains should be more strict about the Requirements for R# to run smoothly ? both for Release and Debug builds.

The latest release build works pretty well for me.

0
Comment actions Permalink

Maybe Jetbrains should be more strict about the Requirements of the product for it to run smoothly ? especially debug builds.

The latest release build is working pretty good for me.

0
Comment actions Permalink

Hello Mike
     We've been looking into this problem, but I'm afraid we have no ideas at the moment. We'd need a memory dump or a sample solution to come up with something. Thank you!

Andrey Serebryansky

Senior Support Engineer

JetBrains, Inc

http://www.jetbrains.com

"Develop with pleasure!"

0
Comment actions Permalink

  Welcome to the corporate world ...

I don't disagree , but while we are small development team (12 of us) in a BIG manufacturer of 15,000 employees , we have a small voice  too. Our prime business is manufacture , not software so our PC's are aimed at one size fits all , at least this time around we got a decent 32 Bit spec PC, up from the email and Word and Excel bashers

Life like that

0
Comment actions Permalink

Hi Eyal

The problems I am encountering are with the 6.1 Release version , not EAP or nightly builds, I have been bitten a couple of times with "work in progresss" betas etc so I steer clear of them where I can

Mike

0
Comment actions Permalink

That's sucks. :|

0
Comment actions Permalink

I too can vouch for those OOM errors going away with the switch to Win7
64-bit.  Even with only 4GB of memory, the problem was alleviated.

Any pressure you can provide to give your developers a 64-bit OS, and more
than 4GB of memory will be effort well spent (and investment for your
company well spent).  The amount of productivity we get back for that small
investment is more than worth it.


"Mike O'Neill"  wrote in message
news:23369969.52821326086015560.JavaMail.devnet@confluence.jetbrains.net...


Welcome to the corporate world ...

I don't disagree , but while we are small development team (12 of us) in a
BIG manufacturer of 15,000 employees , we have a small voice  too. Our prime
business is manufacture , not software so our PC's are aimed at one size
fits all , at least this time around we got a decent 32 Bit spec PC, up from
the email and Word and Excel bashers

Life like that

---
Original message URL: http://devnet.jetbrains.net/message/5448296#5448296

0
Comment actions Permalink

Our company is also using 32bit OS.  Until we can upgrade all of hte legacey apps to 64 bits, which is still a year away...

We are stuck with 32 bits and R# is not usable for me with 6.1.  I'm lucky to get more than an hour of coding before an OOM crash occurs.

Without R# no crashes at all.  I had no problems before version 6 came out. :(  

0
Comment actions Permalink

Hi Charles

Thats good (or bad ) to hear , I was beginning to think I was a lone voice out there. We are in the same boat , we have a large legacy app , half in VB ., half in C# . The SQL db project is also enormous.

Its unlikely we will upgrade this app much more , we just keep adding functionality . Its more likely to get replaced.

I find I keep 6.1 running by routinely restrarting VS every couple of hours , its a pain but it saves the crashes. I also reboot my PC daily to make sure I have no memory hang ups anywhere ( . we have new PC with solid state drives so this is no problem , a miniute or so , compared with our old PC's at 10 mins).

I do think that at the moment Jet Brains has abandoned hope on this , there is an incident in their system , since before Xmas which has received Zero attention.

As I have said so many times , R# IS the best tool , but not while it causes grief like this . Its a Love Hate relationship.

My suspicion is that because we shoudl all have super 64 Bit PC  etc with loads of RAM as our friend above comments, thats what they test on . They wouldn't see the pain we suffer.

Maybe some of their developers should Dog Food R# on a 32 Bit 4 Gb PC for a while , they may just wake up

MIke

0
Comment actions Permalink

Hello Mike and Charles
     There are certain limitations in memory management under 32-bit OS which can lead to memory fragmentation and consequent OOM exceptions. I'm afraid there's little we can do on our side in order to address this problem. By the way, have you tried using the /3GB switch which may help under some circumstances?
     Mike, our developers have reviewed that bug report, but at the moment we don't know what causes such big memory usage on your solution. We'd need a memory dump or a small sample in order to investigate this problem further.
    Thank you!

Andrey Serebryansky

Senior Support Engineer

JetBrains, Inc

http://www.jetbrains.com

"Develop with pleasure!"

0
Comment actions Permalink

Hi Andrey

Sorry If I keep harping on ....

At least now there is something definitive said about 32 Win and OOM errors.

If I get this right , in effect you are saying that R#6.1 is not compatible with VS 2010 running under Win 32 if I am to use large solutions. (defifne large ?)

I have been using R# fro 3 years or so and I have never been aware that there is this limitation , is it described anywhere in documentation that I should have read before I bought it ?

I have been using 32 Bit Win for ever , and its unlikely I will change just to be able to use a specific tool, but I would like to have known about the limitation before I spent hard earned cash purchasing something which seems to be destined to cause me problems. Equally in my work environment I have no say over what PC I use , its simply provided.

As you can appreciate , I like the features of R# and I don't think there is anything else out there to come close to it , but while I get either OOM errors or have to restart VS every hour just to work with it , it seems a two edged sword , you can't easily work with or without it . Back to my Love Hate relationship.

I assume this limitation was not there in V5 , should I reinstall V5 maybe , would that help ?

Short of that, do Jet Brains have any suggestion as to what I should do , and more to the point what I should do with what appears to be a redundant product in my environment.

I apologise if this sounds irritating but I am irritated .

Mike

0
Comment actions Permalink

I am not able to use the 3G switch, as it conflicts with some of the security and HIPAA software on my machine. :(

0
Comment actions Permalink

Hi

Another example of an OO Memory error, maybe to guide your thoughts

Been working around 45 mins , a variety of small editting tasks , and a compilation of a project . Then added a line of code and WHAM - does this help ?

---------------------------
ReSharper – Runtime Error – Technical Data
---------------------------
JetBrains ReSharper has encountered a runtime error.
Technical data follows.
Hint: Ctrl+C copies the text of system message boxes to Clipboard.
________________________________________________________________

Exception of type 'System.OutOfMemoryException' was thrown.

--- EXCEPTION #1/2 [OutOfMemoryException]

ExceptionPath = Root.InnerException

ClassName = System.OutOfMemoryException

HResult = -2147024882

Source = JetBrains.Platform.ReSharper.Util

StackTraceString = “

  at JetBrains.Util.TypeHierarchyMap`1..ctor()

     at JetBrains.Util.TypeHierarchyMapCached`1..ctor()

     at JetBrains.ReSharper.Features.Common.TreePsiBrowser.TreeModelBrowserPresenter..ctor()

     at JetBrains.ReSharper.Features.Browsing.CodeStructure.CodeStructurePresenter..ctor()

     at JetBrains.ReSharper.Features.Browsing.CodeStructure.CodeStructureBrowser.PerformBackgroundUpdate()

     at JetBrains.ReSharper.Features.Browsing.CodeStructure.CodeStructureBrowser.BackgroundUpdate.Work()

     at JetBrains.Application.InterruptableReadActivity.DoWork()

     at JetBrains.Application.InterruptableReadActivity.WorkerThreadProc()

--- Outer ---

--- EXCEPTION #2/2 [LoggerException]

Message = “Exception of type 'System.OutOfMemoryException' was thrown.”

ExceptionPath = Root

ClassName = JetBrains.Util.LoggerException

InnerException = “Exception #1 at Root.InnerException”

HResult = -2146232832

StackTraceString = “

  at JetBrains.Application.InterruptableReadActivity.WorkerThreadProc()

     at JetBrains.Threading.ThreadManager.PooledThread.ThreadProc()

     at JetBrains.Util.Logger.Catch(Action action)

     at JetBrains.Threading.ThreadManager.PooledThread.<.ctor>b__1()

     at System.Threading.ThreadHelper.ThreadStart_Context(Object state)

     at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean ignoreSyncCtx)

     at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state)

     at System.Threading.ThreadHelper.ThreadStart()


---------------------------
OK   
---------------------------

0
Comment actions Permalink

Hello Mike
     Perhaps I wasn't entirely correct in my previous post. What I wanted to say is: if one experiences OOM exceptions, one of the possible problems that we have found is memory fragmentation on 32-bit systems. In order to check if this is the case, one can run the system with a /3GB switch and make sure that this solves this problem.

Andrey Serebryansky

Senior Support Engineer

JetBrains, Inc

http://www.jetbrains.com

"Develop with pleasure!"

0

Please sign in to leave a comment.