Performance Guide
Use this page to get an overview of performance-critical Visual Studio and ReSharper preferences, and quickly change their values. If a preference has a suboptimal value, ReSharper displays a snail icon next to it.
When you select a preference in the list, ReSharper displays the path where it is configured, the current value, and the recommended value at the bottom of the page. If the current value of the selected preference differs from the recommended value, you can click Apply and ReSharper will automatically set the recommended value.
For some preferences — such preferences are marked with the warning icon — it is not feasible to automatically change their values. When you select such preference, you can click Open Options at the bottom of the page and configure it manually.
Each of the items on the page also has a drop-down selector, where you can choose whether and how ReSharper should track the corresponding preference:
Ignore — ReSharper will not track this preference.
Show in status bar — if the preference has a value that differs from the recommended one, ReSharper will display a notification on the Visual Studio status bar: You can always click the notification to option this options page.
Fix silently (might be unavailable for some preferences) — ReSharper will automatically set the recommended value for this preference if it detects a different value.
Option | Description | Affects | Impact |
---|---|---|---|
Visual Studio preferences affecting performance | |||
Enable Lightweight Solution Load mode | When you work on a large solution, you often do not need all the projects in the solution to be loaded. The Lightweight Solution Load lets you delay loading of projects until you start working with them. As you can see on the diagram on the linked Visual Studio Blog page, this option is the most efficient for large solutions. | Startup time | High |
Do not track active item in Solution Explorer | If this feature is disabled, you save some resources on updating the Solution Explorer tree. However, when you need to locate the current document, you can always press Shift+Alt+L. | Navigation between files | Low |
Disable Roslyn full solution analysis | Analysing the entire solution always comes at a price, and the larger your solution, the bigger the performance impact. Although ReSharper features its own Solution-Wide Analysis, it is also the feature that we recommend to disable as soon as you notice any slowness in Visual Studio. | User action response time | High |
Source control plug-in in use | Many Visual Studio users report performance problems when using the default source control plugin — here is one example — therefore, if you do not use source control integration, we recommend turning it off to improve overall performance. Otherwise, choose Ignore for this suggestion. | Startup time, | High |
Show empty environment at startup | Choosing to show the empty IDE at startup will help you slightly decrease the startup time. | Startup time | Low |
Do not download content at startup | This is another place where you can save some startup time proportionally to your Internet connection speed. | Startup time | Low |
Do not save autorecover information | Although constantly copying the current state of opened documents may be useful in case of a crash, it large solutions it may come at a price of UI freezes, (for example, see the comments here). Therefore, we recommend disabling this feature and developing a habit of saving your files after any important changes. | Startup time, | Medium |
Do not track changes in text editor | When 'Track changes' is enabled, Visual Studio adds gutter highlightings for edited lines. If there are too many edits in the current file, the editor can become slow because these highlightings often need to be calculated. | Typing | Low |
Disable XAML designer | Visual XAML designer is known to be a very resource-intensive feature. So if you can work with XAML code without the visual representation of XAML forms, we strongly recommend disabling the XAML designer. | Editing XAML documents | High |
Disable automatic formatting by Visual Studio | If you rely on ReSharper when formatting your code, you will probably do not want the formatting to be done twice. So although Visual Studio formatting does not normally bring any performance issues, it seems logical to eliminate the unnecessary work. | Typing, | High |
Disable synchronization of settings | If you choose to synchronize your Visual Studio settings, there is no known performance problem problems with it, just select Ignore for this option. But if you do not use it, we can recommend disabling the synchronization. | User action response time | Low |
Do not show annotations over vertical scroll bar | ReSharper extensively uses the right gutter or the vertical scroll bar to show design-time inspection notification, structural search and replace results, To-do items, and usages of symbol in the file . Visual Studio also displays a lot of its notification on the scroll bar, and sometimes Visual Studio and ReSharper report the same error, which got displayed twice, and often the scrollbar becomes cluttered with marks. | Scrolling, | Low |
Disable CodeLens for all languages | CodeLens is among several performance considerations for large solutions because "the IDE basically performs a Find All References operation for each method as it scrolls onto the screen". Therefore, we recommend disabling it if you notice any lags. | Scrolling, | High |
ReSharper preferences affecting performance | |||
Do not include Roslyn lightbulb actions into ReSharper's | ReSharper can show Visual Studio Light Bulb actions integrated in its own action list. This is costly performance-wise because ReSharper has to request available actions from Roslyn, which could lead to increased CPU and memory usage. | Typing, | Low |