JetBrains Rider 2019.1 Help

Profiling Configurations Dialog

Run | Switch Profiling Configuration | Edit Configurations...

Use this dialog to create, edit, adjust, or remove profiling configurations.

Common options

Item

Description

Name

In this field, specify the name for the profiling configuration. The name will help you identify the created configuration when you choose to edit it later, or when you invoke it.

Control profiling manually

Enables you to control profiling manually via the profiler controls. For example, to take a snapshot, you will have to click the Get Snapshot button

Collect profiling data from start

Collect profiling data from start: If selected, dotTrace will start collecting profiling data right after the launch. Otherwise, dotTrace will start collecting the data only after you click Start Recording in the Performance Profiler tool window.

Control profiling via API

Enables you to control profiling directly from the code of the profiled application. For example, to take a snapshot in the exact point of your code. Learn more about using the API in the dotTrace documentation.

Profile child processes

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

Toolbar

The tree view of profiling configurations has a toolbar that helps you manage configurations available in your solution as well as adjust default configurations templates.

Item

Shortcut

Description

Add profiling configuration Ctrl+N

Create a profiling configuration.

Delete profiling configuration Ctrl+R, D

Delete the selected profiling configuration.

Copy Ctrl+D

Create a copy of the selected profiling configuration.

Up/ Down

Alt+Up/ Alt+Down

Move the selected profiling configuration up and down in the list.

The order of configurations in the list defines the order, in which the configurations appear when you choose a profiling configuration.

Profiling type: Sampling

The Sampling profiling type provides accurate time measurement but it does not measure number of method calls. Sampling is recommended for most profiling cases. Ideal when you look for performance issues in your application for the first time.

Item

Description

Time measurement

This option defines how dotTrace must calculate calls time. For more details, refer to https://www.jetbrains.com/help/profiler/Profiling_Guidelines__Setting_the_Right_Meter_Kind.html. Typically, this is a choice between whether dotTrace should calculate time when a thread is not working or should not. More specifically, there are four options:

  • Real time (performance counter)
    Recommended. dotTrace calculates the overall real time passed between method entry and exit. This time does not depend on app threads states. Time is calculated using system performance counter.

  • Real time (CPU instruction)
    dotTrace calculates the overall real time passed between method entry and exit. This time does not depend on app threads states. Time is calculated using the CPU register.

  • Thread time
    dotTrace calculates only the time when a certain thread is running. The time when the thread is waiting or sleeping is not included in calculation.

  • Thread cycle time
    dotTrace calculates only the time when a certain thread is running. The time when the thread is waiting or sleeping is not included in calculation. Time is calculated using the CPU register.

Merge threads with equal names

If selected, dotTrace will group the performance information for all threads with the same name under a single thread node in the Call Tree view.

Profiling type: Tracing

The Tracing profiling type provides accurate calls number measurement. Note that time measurement may be inaccurate due to profiling overhead. Use this profiling type only when sampling data is not enough. For example, for analyzing algorithm complexity (when info about number of calls is more valuable than call time values).

Item

Description

Time measurement

This option defines how dotTrace must calculate calls time. For more details, refer to https://www.jetbrains.com/help/profiler/Profiling_Guidelines__Setting_the_Right_Meter_Kind.html. Typically, this is a choice between whether dotTrace should calculate time when a thread is not working or should not. More specifically, there are four options:

  • Real time (performance counter)
    Recommended. dotTrace calculates the overall real time passed between method entry and exit. This time does not depend on app threads states. Time is calculated using system performance counter.

  • Real time (CPU instruction)
    dotTrace calculates the overall real time passed between method entry and exit. This time does not depend on app threads states. Time is calculated using the CPU register.

  • Thread time
    dotTrace calculates only the time when a certain thread is running. The time when the thread is waiting or sleeping is not included in calculation.

  • Thread cycle time
    dotTrace calculates only the time when a certain thread is running. The time when the thread is waiting or sleeping is not included in calculation. Time is calculated using the CPU register.

Enable inlining

Clear this option if you want dotTrace to turn off JIT-inlining and get call stacks that closely resemble the structure of application's source code.

High accuracy

If selected, dotTrace will take into account time spent in profiler itself by taking more time samples.

Merge threads with equal names

If selected, dotTrace will group the performance information for all threads with the same name under a single thread node in the Call Tree view.

Profiling type: Line-by-line

During Line-by-line profiling, each line of code is measured, call time values are inaccurate due to huge profiler overhead. Use it for advanced cases only. For example, when you already know what function causes issues and want to analyze each line of it.

Item

Description

Time measurement

This option defines how dotTrace must calculate calls time. For more details, refer to https://www.jetbrains.com/help/profiler/Profiling_Guidelines__Setting_the_Right_Meter_Kind.html. Typically, this is a choice between whether dotTrace should calculate time when a thread is not working or should not. More specifically, there are four options:

  • Real time (performance counter)
    Recommended. dotTrace calculates the overall real time passed between method entry and exit. This time does not depend on app threads states. Time is calculated using system performance counter.

  • Real time (CPU instruction)
    dotTrace calculates the overall real time passed between method entry and exit. This time does not depend on app threads states. Time is calculated using the CPU register.

  • Thread time
    dotTrace calculates only the time when a certain thread is running. The time when the thread is waiting or sleeping is not included in calculation.

  • Thread cycle time
    dotTrace calculates only the time when a certain thread is running. The time when the thread is waiting or sleeping is not included in calculation. Time is calculated using the CPU register.

Enable inlining

Clear this option if you want dotTrace to turn off JIT-inlining and get call stacks that closely resemble the structure of application's source code.

High accuracy

If selected, dotTrace will take into account time spent in profiler itself by taking more time samples.

Merge threads with equal names

If selected, dotTrace will group the performance information for all threads with the same name under a single thread node in the Call Tree view.

Profiling type: Timeline

During a Timeline profiling session, dotTrace collects temporal data about thread states, application events, and other multi-threading data. We recommend this profiling type for most cases. Especially, for analyzing multithreaded apps. Use it, for example, to determine the cause of UI freezes, excessive garbage collections, uneven workload distribution, insufficient I/O, and so on.

Item

Description

Collect native allocations

If selected, dotTrace will collect information about all memory allocations the profiled application does in the native (unmanaged) heap. To be able to select this option, you must have Windows Performance Toolkit installed on your computer.

Collect TPL events

If selected, profiling performance may be affected but dotTrace will collect Task Parallel Library (TPL) data. If cleared, there will be no Task nodes in Call Tree and async call nodes will lack their await and continuations parts. Learn more about how dotTrace works with asynchronous code in the dotTrace documentation.
Clear this option in case your application does not use multitasking or you do not need this info.

Collect debug output

If selected, dotTrace will collect information about all messages the profiled application sends to the debug output.

Profiling type: Timeline (Mono)

You can profile Mono applications only using the Timeline profiling type. To distinguish a profiling type for .NET Framework applications, there is a separate Timeline (Mono) profiling type.

Item

Description

Collect native allocations

If selected, dotTrace will collect information about all memory allocations the profiled application does in the native (unmanaged) heap. To be able to select this option, you must have Windows Performance Toolkit installed on your computer.

Collect TPL events

If selected, profiling performance may be affected but dotTrace will collect Task Parallel Library (TPL) data. If cleared, there will be no Task nodes in Call Tree and async call nodes will lack their await and continuations parts. Learn more about how dotTrace works with asynchronous code in the dotTrace documentation.
Clear this option in case your application does not use multitasking or you do not need this info.

Collect debug output

If selected, dotTrace will collect information about all messages the profiled application sends to the debug output.

Profiling type: Timeline (Unity)

You can profile Unity applications only using the Timeline profiling type. To distinguish a profiling type for .NET Framework applications, there is a separate Timeline (Unity) profiling type.

Item

Description

Collect native allocations

If selected, dotTrace will collect information about all memory allocations the profiled application does in the native (unmanaged) heap. To be able to select this option, you must have Windows Performance Toolkit installed on your computer.

Collect TPL events

If selected, profiling performance may be affected but dotTrace will collect Task Parallel Library (TPL) data. If cleared, there will be no Task nodes in Call Tree and async call nodes will lack their await and continuations parts. Learn more about how dotTrace works with asynchronous code in the dotTrace documentation.
Clear this option in case your application does not use multitasking or you do not need this info.

Collect debug output

If selected, dotTrace will collect information about all messages the profiled application sends to the debug output.

Last modified: 11 June 2019