Performance Guide
Use this page to get an overview of performance-critical 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.
By default, ReSharper automatically checks performance-critical preferences and if their values differ from the recommended ones, it displays a notification on the Visual Studio status bar:
If you want to disable these notifications, clear the Enable performance suggestions checkbox.
Each of the items on the page also has a drop-down selector, where you can choose how ReSharper should react if the preference has a suboptimal value:
Ignore — ReSharper will not track this preference.
Notify me — if the preference has a value that differs from the recommended one, ReSharper will display a notification on the Visual Studio status bar.
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 |
---|---|---|---|
System preferences affecting performance | |||
Antivirus software | This section displays antivirus software detected in your system. Windows Defender (as well as other antivirus software) can cause performance issues with Visual Studio and ReSharper by constantly scanning related high-load processes and folders with frequently changed contents. We recommend adding the devenv.exe, msbuild.exe, your project/solution folders, and ReSharper cache folder (by default %LOCALAPPDATA%\JetBrains\Transient and configurable) to the ignore list of Windows Defender (and other antivirus software). | User action response time | High |
Visual Studio preferences affecting performance | |||
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 Alt+Shift+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 plugin 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, User action response 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, in 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, User action response 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 recalculated. Although this is a helpful feature, we recommend disabling it, especially when working with large files. | Typing User action response time | 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 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, Pasting code | High |
Disable synchronization of settings | If you choose to synchronize your Visual Studio settings, there is no known performance problems with it, just select Ignore for this option. But if you do not use Visual Studio on multiple computers, we 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 notifications 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. If you prefer ReSharper marks, you can completely or partially disable Visual Studio annotations and get some performance benefits by not rendering them. Alternatively, you can disable ReSharper's marks on the scroll bar — go to ReSharper | Options | Editor | Editor Appearance and choose Do not show marker bar. | Scrolling, Typing | 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. Some features of CodeLens are provided by ReSharper — for example, you can always quickly get all references or usages of the symbol Alt+F7. | Scrolling, Typing, User action response time | High |
ReSharper preferences affecting performance | |||
Do not include Visual Studio actions into ReSharper action list | 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. Although all requests to Roslyn are made in the background thread, you might want to opt out Visual Studio actions integration if there are any noticeable performance problems. | Typing, User action response time | Low |