Rider Profiling Instructions (.NET process)

NB! This article covers only .NET Rider process. For Java process (JetBrains Rider) related issues refer to this article.

MacOS and Linux:

In case you see that Rider slows down on your Mac, and/or dotnet CPU usage spikes up to 100%, please take the following steps:

  1. Call the action "Help | Diagnostic tools | Profile Backend with Sampling".
  2. Wait until Attaching to profiler process finishes (a progress bar in the bottom status bar will indicate about it and you will see that Profiling is in progress).
  3. Perform the actions leading to high CPU usage.
  4. Wait for a minute and then stop profiling with the action "Help | Diagnostic tools | Backend: stop profiling".
  5. In the bottom right corner you will see a notification popup that a snapshot has been captured and a link to the snapshot file. Collect this snapshot.
  6. Create a new issue in the Rider issue tracker. In the issue, provide a short description of the performance problems you're experiencing, share the collected snapshot via uploads.jetbrains.com service, and let us know the exact ID of your upload.

Windows:

Embedded profiler

  1. Start Rider;
  2. Call "Help -> Diagnostic Tools -> Profile Backend with Timeline | Sampling or Capture Backend Memory Snapshot" if your Rider version is 2020.1+ and Tools -> Backend Profiling -> Start Sampling | Timeline or Dump Memory  if you use Rider2019.3 and older version;
  3. Wait until you see "Profiling in progress: stop it manually" message at the bottom; 
  4. Perform actions which are slow in Rider (typing, switching between documents, building, etc.);
  5. To stop profiling, call "Diagnostic Tools -> Backend: Stop Profiling";
  6. At the bottom-right corner, you will get a popup with a performance snapshot file name and "Show in Explorer" link to open a folder;
  7. Share the file with us, some ways are mentioned here
  8. Create a new issue in the Rider issue tracker. In the issue, provide a short description of the performance problems you're experiencing, and specify the name of your snapshot.

Standalone JetBrains dotTrace profiler

  1. Download and install JetBrains dotTrace profiler:
  2. Start dotTrace and select Profile Local App | .NET Process.
  3. Make sure the following options are set in Profiler Options:
    • Profiling type: Timeline (or Sampling, or Tracing if you has been asked to collect a Sampling or a Tracing snapshot respectively)
    • Start immediately: on (if you're experiencing performance problems on Rider startup or during solution loading) or off otherwise
  4. Click Run
  5. Run Rider
  6. If there's a performance problem during startup:
    • Wait while Rider starts, open your solution;
    • Wait until the solution is loaded and Rider finishes loading caches;
    • Click Get Snapshot'n'Wait button in the profiling controller window;
  7. Otherwise:
    • Wait while Rider starts, open your solution
    • Click Start button in the profiling controller window
    • Perform actions which are slow in Rider (typing, switching between documents, building, etc.)
    • Click Get Snapshot'n'Wait button in the profiling controller window
  8. If you would like to create a new snapshot without saving the current one, click Drop in the profiling controller window
  9. In dotTrace Performance Viewer, save the resulting snapshot using the File | Export Snapshot... menu
  10. Compress the snapshot file using Zip
  11. Share the file with us, some ways are mentioned here 
  12. Create a new issue in Rider issue tracker. In the issue, provide a short description of the performance problems you're experiencing, and specify the name of your snapshot.
3 comments
Comment actions Permalink

I'm having problems with the Embedded Profiler after Step #2 - i.e. nothing happens when I click Start Sampling or Start Timeline, there is no message at the bottom of the IDE. Another colleague has the same problem. Thanks.

Rider 2017.1.2
Build #RD-171.4456.3568, built on September 15, 2017

You have a perpetual fallback license for this version
Subscription is active until September 10, 2018
JRE: 1.8.0_112-release-736-b22 amd64
JVM: OpenJDK 64-Bit Server VM by JetBrains s.r.o
Windows 7 6.1

0
Comment actions Permalink

Hi Konstantin,

Thank you for pointing us to this issue.

I fixed the article. Now to diagnose CPU performance issues for dotnet Rider process there is an action `Help | Diagnostic tools | Profile Backend with Sampling`.

0
Comment actions Permalink

Linux and Rider 2021.1.2

* There is no 'Create Backend Thread Dumps", there is 'Collect Backend Thread Dumps" instead

* After click this menu I got error: "LLDB not available at /usr/lib/llvm-3.9/bin/lldb". It would be better to mention in article If I had to install some prerequisites .

* Why 3.9 ? It's already five years old. 

Edited by Konstantin Petukhov
0

Please sign in to leave a comment.

Have more questions?

Submit a request