ReSharper Profiling Instructions

Skip to end of metadata
Go to start of metadata

Performance Issues

In order to get a performance snapshot for ReSharper follow these steps:

  1. Download and install dotTrace Performance profiler from http://www.jetbrains.com/profiler/download 
  2. Start dotTrace and select New Session | Local
  3. In the Profile Running Process section, select the Visual Studio executable (devenv.exe)
  4. Make sure the following options are set in Profiler Options:
    1. Profiling type: Sampling
    2. Start immediately: on (if you're experiencing performance problems on Visual Studio startup or during solution loading) or off otherwise
  5. Click Run
  6. If there's a performance problem during startup
    1. Wait while Visual Studio starts, open your solution
    2. Wait until the solution is loaded and ReSharper finishes loading caches
    3. Click Get Snapshot'n'Wait button in the profiling controller window
  7. Otherwise
    1. Wait while Visual Studio starts, open your solution
    2. Click Start button in the profiling controller window
    3. Perform actions which are slow with ReSharper (typing, switching between documents, building etc)
    4. Click Get Snapshot'n'Wait button in the profiling controller window
  8. In dotTrace, save the resulting snapshot using the File | Export Snapshot... menu
  9. Compress the snapshot file using Zip
  10. 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.
  11. 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.

  1. Download and install the trial version of dotMemory.
  2. Run dotMemory.
  3. On the dotMemory Home page, select Profile | Standalone Application.
  4. In the opened Profiler Configuration window:
    1. 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
    2. Select Collect every N-th object and Collect checkboxes.
    3. Click Run. This will run Visual Studio.
  5. Open your solution and wait until it is completely loaded.
  6. Collect a memory snapshot by clicking Get Snapshot in dotMemory.
  7. In Visual Studio, perform actions that are suspected to cause memory issues (high memory traffic, exceptions, etc.).
  8. Collect a snapshot one more time by clicking Get Snapshot in dotMemory.
  9. Close Visual Studio.
  10. In dotMemory, save collected snapshots to a file using the menu File | Import Workspace.
  11. 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.
  12. Create a new issue in our issue tracker.
    In the issue, please provide:
    1. A short description of the issue.
    2. Steps required to reproduce the issue.
    3. The name of the uploaded file.

.Net Memory Profiler

Prepare environment:

  1. 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"/>
  2. Download NmpCore.exe (or you can try newer version from the vendor site)
  3. Enable Managed Memory Indicator in ReSharper | Options / Environment / General

Get snapshot:

  1. Get process ID for devenv.exe process in question
  2. Double-click managed memory indicator in Visual Studio status bar (to the right) to perform Garbage Collection
  3. Execute the following command, substituting <pid> and path to snapshot:

Advanced snapshots:

  1. Download evaluation version of .Net Memory Profiler
  2. Install and start it
  3. Open Tools / Options, select "Call Stacks" page and uncheck "Enable stack reducer" on General tab
  4. Click "Profle application" on the main screen
  5. Enter path to Visual Studio executable "C:\Program Files (x86)\Microsoft Visual Studio 10.0\Common7\IDE\devenv.exe" and click Next
  6. Select "Custom" profiling level, and click Next
  7. Select "Full" on instance tracking page, and click Next
  8. Select "Yes" for the collect allocation call stacks choice, and click Next
  9. Select "No" for dispose tracker, real-time data collection, heap utilization, AppDomain tracker, unmanaged resources tracker and instance data trackers.
  10. Click Start to start process and begin profiling
  11. Open your solution and after everything settles down, click Collect Snapshot in profiler to create base-line snapshot
  12. Perform actions that are producing memory traffic, or cause excess memory allocations
  13. Collect snapshot
  14. Hit "Stop profiling" button and save snapshots in a .prfsession file

Upload snapshot and create an issue:

  1. Compress the resulting snapshot using Zip
  2. 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.
  3. 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.
Labels:
None
Enter labels to add to this page:
Please wait 
Looking for a label? Just start typing.