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 choose 'Profile'
  3. Select 'Standalone application' in the 'Application kind' list
  4. Point dotTrace to Visual Studio executable (devenv.exe)
  5. Make sure the following options are set:
    1. Profiling type: Tracing
    2. Meter kind: Wall time (performance counter)
    3. Start profiling immediately: on (if you're experiencing performance problems on Visual Studio startup or during solution loading) or off otherwise
  6. Press 'Run'
  7. 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. Press 'Get Snapshot' button on the 'Control Profiling' window
  8. Otherwise
    1. Wait while Visual Studio starts, open your solution
    2. Press 'Start Profiling' button on the 'Control Profiling' window
    3. Perform actions which are slow with ReSharper (typing, switching between documents, building etc)
    4. Press 'Get Snapshot' button on the 'Control Profiling' window
  9. Save the resulting snapshot
  10. Compress the resulting snapshot using Zip
  11. Upload the snapshot 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.
  12. 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.