Performance Issues
ReSharper embedded profiler
In order to get a performance snapshot for ReSharper using embedded profiler follow these steps (full manual is here http://resharper-support.jetbrains.com/hc/en-us/articles/214871597):
- Go to 'ReSharper | Help | Profile Visual Studio'.
- Note: on a 1st run self-profiling tool will be downloaded from JetBrains server, so please be patient.
- This action will start the profiling of the VS immediately - after you finish doing the repro actions (basically, reproduce the slowdown), please press the 'Get Snapshot' button in the dialog.
- After profiling is complete, you'll be able to upload the snapshot to our FTP server by clicking on Submit button
Standalone dotTrace profiler
In order to get a performance snapshot for ReSharper using dotTrace follow these steps:
- Download and install dotTrace Performance profiler from http://www.jetbrains.com/profiler/download
- Start dotTrace and select New Session | Local | Standalone
- In the Standalone Application section, specify a path to the Visual Studio executable (devenv.exe)
- Make sure the following options are set in Profiler Options:
- Profiling type: Sampling (or Tracing if you has been asked to collect exactly Tracing snapshot)
- Start immediately: on (if you're experiencing performance problems on Visual Studio startup or during solution loading) or off otherwise
- Click Run
- If there's a performance problem during startup
- Wait while Visual Studio starts, open your solution
- Wait until the solution is loaded and ReSharper finishes loading caches
- Click Get Snapshot'n'Wait button in the profiling controller window
- Otherwise
- Wait while Visual Studio starts, open your solution
- Click Start button in the profiling controller window
- Perform actions which are slow with ReSharper (typing, switching between documents, building etc)
- Click Get Snapshot'n'Wait button in the profiling controller window
- In dotTrace Performance Viewer, save the resulting snapshot using the File | Export Snapshot... menu
- Compress the snapshot file using Zip
- Upload the file to ftp://ftp.intellij.net/.uploads/. Don’t worry if you don’t see the upload progress – it is hidden according to the FTP folder privileges.
- Create a new issue in ReSharper issue tracker. In the issue, provide a short description of the performance problems you're experiencing, and specify the name of your snapshot.
Memory Issues
dotMemory
In case of memory issues with ReSharper, please follow the instructions below.
- Download and install the trial version of dotMemory.
- Run dotMemory.
- On the dotMemory Home page, select Profile | Standalone Application.
- In the opened Profiler Configuration window:
- In Application, specify the path to the Visual Studio executable. For example: C:\Program Files (x86)\Microsoft Visual Studio 12.0\Common7\IDE\devenv.exe
- Click Run. This will run Visual Studio.
- Open your solution and wait until it is completely loaded.
- Collect a memory snapshot by clicking Get Snapshot in dotMemory.
- In Visual Studio, perform actions that are suspected to cause memory issues (high memory traffic, exceptions, etc.).
- Collect a snapshot one more time by clicking Get Snapshot in dotMemory.
- Close Visual Studio.
- In dotMemory, save collected snapshots to a file using the menu File | Export Workspace.
- Upload the file to ftp://ftp.intellij.net/.uploads/.
Don’t worry if you don’t see the upload progress – it is hidden according to the FTP folder privileges. - Create a new issue in our issue tracker.
In the issue, please provide:- A short description of the issue.
- Steps required to reproduce the issue.
- The name of the uploaded file.
.Net Memory Profiler
Prepare environment:
- Before starting Visual Studio:
- Open devenv.exe.config in "C:\Program Files (x86)\Microsoft Visual Studio 10.0\Common7\IDE"
- In the <runtime> section add <gcConcurrent enabled="false"/>
- Download NmpCore.exe (or you can try newer version from the vendor site)
- Enable Managed Memory Indicator in ReSharper | Options / Environment / General
Get snapshot:
- Get process ID for devenv.exe process in question
- Double-click managed memory indicator in Visual Studio status bar (to the right) to perform Garbage Collection
Execute the following command, substituting <pid> and path to snapshot:
Advanced snapshots:
- Download evaluation version of .Net Memory Profiler
- Install and start it
- Open Tools / Options, select "Call Stacks" page and uncheck "Enable stack reducer" on General tab
- Click "Profle application" on the main screen
- Enter path to Visual Studio executable "C:\Program Files (x86)\Microsoft Visual Studio 10.0\Common7\IDE\devenv.exe" and click Next
- Select "Custom" profiling level, and click Next
- Select "Full" on instance tracking page, and click Next
- Select "Yes" for the collect allocation call stacks choice, and click Next
- Select "No" for dispose tracker, real-time data collection, heap utilization, AppDomain tracker, unmanaged resources tracker and instance data trackers.
- Click Start to start process and begin profiling
- Open your solution and after everything settles down, click Collect Snapshot in profiler to create base-line snapshot
- Perform actions that are producing memory traffic, or cause excess memory allocations
- Collect snapshot
- Hit "Stop profiling" button and save snapshots in a .prfsession file
Upload snapshot and create an issue:
- Compress the resulting snapshot using Zip
- Upload it to ftp://ftp.intellij.net/.uploads/. If upon uploading you're unable to see the snapshot in the remote folder, this is normal: this is the way privileges are set up for the FTP folder.
- Create a new issue in ReSharper issue tracker. In the issue, provide a short description of the memory consumption problems you're experiencing, and specify the name of your snapshot.