Performance Issues
In order to get a performance snapshot for ReSharper 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
- 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.