JetBrains Rider 2023.1 Help

Profile applications

Regardless of what application type you are going to profile, the workflow always looks the same:

  1. Decide which profiling configuration you will use.

  2. Run the profiling session and get the data.

  3. Analyze the collected data.

Run a profiling session

  1. On the toolbar, select the run configuration you want to profile.

  2. In the menu Run | Switch Profiling Configuration choose a profiling configuration:

    Profiling configurations in Rider

    Once the profiling is started, you will see the dotMemory Profiler tool window opened on the Profiling tab with the profiling controller inside.

  3. Reproduce the issue you are looking for or, if you just want to evaluate the memory usage, go through the desired usage scenarios in your application. Note that currently, it's not possible to get memory snapshots. You can analyze only memory allocation.

  4. After you collect the data, you can finish the profiling session. Normally, you do it either by closing the profiled application or by detaching the profiler via the Detach profiler Detach button (Kill processes Kill forcibly terminates the profiled app and the session, so, use it only in emergency cases).

  5. Analyze the collected data.

Analyzing collected data

dotMemory saves the data collected during a profiling session to a workspace. Currently, dotMemory in Rider doesn't support getting memory snapshots. This means that workspaces collected in Rider contain only memory allocation data of your application. To analyze one of the recently collected workspaces, use the Recent Workspaces tab of the dotMemory Profiler tool window.

For more details on how to analyze allocation data, refer to Analyze memory allocation.

About profiling configurations

  • Before starting a profiling session, you must decide which profiling configuration you will use. Typically, you decide between

  • The profiling configuration specifies profiling session settings like which allocation data must be collected, whether child processes must be profiled, and so on.

  • The profiling target is always an executable* which is specified in the currently selected run configuration.

  • Currently, you are able to profile the following run configuration types:

    If you select a run configuration of some other type, this will disable the profiling controls on the toolbar.

Create a custom profiling configuration

  1. In the menu, choose Run | Switch Profiling Configuration | Edit Configurations.

  2. In the opened Profiling Configurations window, click App resharper structural search add pattern to add a new profiling configuration.

  3. In the list, select a data collection mode: either Memory (Sampled allocations), or Memory (Full allocations). Learn more about the modes.

  4. Specify configuration Name and other profiling options:

    Control profiling manually

    Enables you to control profiling manually via the profiler controls.

    Control profiling via API

    Enables you to control profiling directly from the code of the profiled application. Learn more about using the API in the dotMemory documentation.

    Profile child processes

    If selected, dotMemory will profile not only the main app process but the processes it runs as well.

Last modified: 31 July 2022