Profiling Configurations Dialog
Use this dialog to create, edit, adjust, or remove profiling configurations.
Common options
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 dotTrace 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 |
---|---|---|
Alt+Insert | Create a profiling configuration. | |
Alt+Delete | Delete the selected profiling configuration. | |
Ctrl+D | Create a copy of the selected profiling configuration. | |
/ | 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.
Time measurement | This option defines how dotTrace must calculate calls time. For more information, 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 the following options:
|
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).
Time measurement | This option defines how dotTrace must calculate calls time. For more information, 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 the following options:
|
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. |
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.
Time measurement | This option defines how dotTrace must calculate calls time. For more information, 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 the following options:
|
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. |
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.
Collect native allocations | If selected, dotTrace will collect information about all memory allocations the profiled application does in the native (unmanaged) heap. |
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 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.
Collect native allocations | If selected, dotTrace will collect information about all memory allocations the profiled application does in the native (unmanaged) heap. |
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 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.
Collect native allocations | If selected, dotTrace will collect information about all memory allocations the profiled application does in the native (unmanaged) heap. |
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 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. |