Since the last few latest updates to CodeRush we as a development team are experiencing slowdowns within Visual Studio, without any settings changes. Having briefly looked into this this morning, I believe the CodeIssues Catalog VS Registration system is broken, in the sense of it is running background analysis on items, even though they are either not enabled, or registered within Visual Studio.
Our memory usage since the latest update, is unpredictable and causing frequent crashes within visual studio. Because of this I have had to make the decision to disable the CodeRush extension for now.
Hi Mark,
We constantly work on performance enhancements and would greatly appreciate you providing any information that will help us localize the problem.
Would you please archive two folders with the product settings and send them to us?
- %appdata%\CodeRush\Settings\
- in the solution folder
The path should be similar to the following one: {SolutionFolder}.cr\
Also, please check the "Enable full solution analysis" option in the "Tools\Options…" dialog on the "Text Editor\Basic\Advanced" option page and let us know if it is disabled.
In addition, it will help if you send us CodeRush log files (you can get them here: %LocalAppData%\CodeRush\Logs).
I am looking forward to hearing from you.
Eugene, to add to my initial ticket, me and my colleague have since discovered that two new "unused" based analyzers were defaulted to being registered within VS. Based on my review of recent release notes, I am of the understanding that these have recently been introduced.
I can confirm that the Enable full solution analysis option is indeed disabled.
I have attached a zip folder as requested, that contains the code rush settings, the solution folder based coderush settings, and all the log files contained within the Logs folder.
In the meantime, I will follow my colleagues recent adjustments and see if these have any impact on Visual Studio stability and responsiveness.
Hi Mark,
Thank you for your assistance.
Please give us some time to research the settings and logs.
We will contact you soon.
Hi Mark,
We've analyzed your log files and see that there's some diagnostics in background analysis that should not be there.
Would you please try disabling "Show Color" and "Spell Checker" and check the slowdown again.
You can use the Quick Setup option page to disable these features. Here is an image illustrating how you can do this: https://www.screencast.com/t/ZVXbuBfF1eV
We've prepared a build that logs the diagnostics registration in VS.
Would you please try it and send us the logs again in case the slowdown persists.
- http://downloads.devexpress.com/Share/IDE/190719/DevExpress.CodeRush-19.1.6.19199.exe
- http://downloads.devexpress.com/Share/IDE/190719/DevExpress.CodeRush-19.1.6.19199.vsix
Try the following testing scenario with this build:
Repeat steps 2 and 3 several times so that the logs folder contains several reports (files)
Also, it would be very helpful if you could collect perf view data on this issue using the PerfView tool from Microsoft during the slowdown and provide us with this information.
You can upload the log files to our FTP with the following credentials:
Server: downloads.devexpress.com
User: UPLOAD
Password: HEREYOUARE
I look forward to hearing from you.
Eugene, many thanks for getting back to me, as mentioned in my previous comment, we had noticed several "unused" based analyzers that were registered within VS by default upon upgrading to the latest version of CodeRush, is this the "diagnostics" that were registered in the background analysis you are talking about?
And so just to clarify, you want me to install this special build, disable both the spellchecker and the showcolor options. You also want me to clear my logs folder, attempt to reproduce the slowdown, as well as providing you with a PrefView DataSet.
Hi Mark,
Thank you again for taking the time and helping us catch this problem.
If I understand you correctly, you're talking about the diagnostics from the CodeAnalysis section in the project properties.
Here is an image of this section : https://www.screencast.com/t/r8W4oGcyzhTD
Presence of these diagnostics is normal and should not impact the productivity.
I've analyzed the log file you sent us and see that it contains many exceptions from the async methods analyzer which means that this diagnostic continues to work in the background even if we do not register it in VS.
Here is the call stack of the exception I mean.
I've also noticed several errors from the "Show Color" functionality in the logs.
So, as the first step, please try disabling the spellchecker and the showcolor options and then try to reproduce the problem.
After that, please install the special build we sent you, try to reproduce the slowdown again and send us the log files.
This build contains the additional logging of the diagnostics registration and we expect to gather the necessary information.
Please, follow the test scenario I mentioned in my previous reply.
If you have the opportunity to collect perf view data, no matter on which build, the current or the one we sent you, this will greatly help us find the cause of the problem.
Ah okay, this makes a bit more sense and I did notice those exceptions within my log file when quickly glancing at them. I've followed your steps of disabling both the spellchecker and the show color option.
Whilst I haven't seen any slowdown, I am noticing other behaviour relating directly to the code issues catalog. I have now disabled every code issue that was registered to VS, and reopened visual studio upon making these changes. Despite this I am seeing items relating to these analyzers such as CRR0035 in my error list, and as far as I was aware this should not be the case, and also points to diagnostics still running in the background.
Hi Mark,
Yes, it looks like a symptom of the same problem.
Diagnostics are registered in VS and run in the background by some reason, regardless of the options set in Code Issues Catalog.
Here is an excerpt from your extra logging information:
2019.07.19 11:10:18.9044 Information: The 'CRR0035' analyzer is not registered by default…
I have disabled CRR0035 in every language in the settings.
I also in a couple of my instances of running visual studio saw this in the log file:
2019.07.19 13:52:37.7639 Information: The 'CRR0022' analyzer is registered as a standalone analyzer.
Don't know if this helps diagnose the issues i'm facing. I will provide more detail when I have a bit more time to investigate which should hopefully be monday.
Also still seeing this in the logs:
2019.07.19 16:14:49.6805 Error: Message: Object reference not set to an instance of an object.
2019.07.19 16:14:49.6805 Error: Type: System.NullReferenceException
2019.07.19 16:14:49.6805 Error: Source: DevExpress.CodeAnalysis.VisualBasic.Diagnostics
2019.07.19 16:14:49.6805 Error: StackTrace: at DevExpress.CodeAnalysis.VisualBasic.Diagnostics.AsyncAwait.TaskFactoryStartNewAnalyzer.AnalyzeNode(SyntaxNodeAnalysisContext context)
at DevExpress.CodeAnalysis.Diagnostics.DiagnosticAnalyzerBase.AnalyzeNodeWithLogging(SyntaxNodeAnalysisContext context)
Hi Mark,
Thank you for the assistance.
Presence of this exception in the log file shows that the diagnostic is used by VS even if it is disabled.
We suppose that we understand the cause of this behavior.
Please give us some time to prepare the correction. We will contact you once the changes are ready.
Of course Eugene, if you do require further information or detail, don't hesitate to ask.