Skip to main content

Profiling

Profiling is specifically used for collecting and analyzing program runtime performance data to identify performance bottlenecks and optimize code. Profiling can provide detailed information such as function call counts, execution time, and memory usage, helping to understand program performance and resource utilization.

Its value includes but is not limited to:

  • Precise problem location: Can pinpoint issues down to code methods and lines, directly locating performance problems, reducing development costs, and avoiding repeated instrumentation.
  • Performance optimization: By analyzing Profiling data, CPU and memory-intensive code can be identified, and performance hotspots can be optimized to improve overall system performance.
  • Resource management: Helps developers understand program resource usage, such as CPU utilization and memory allocation, to better manage resources and improve system efficiency.
  • Code behavior analysis: Profiling data is presented in flame graph format, enabling deep analysis from "what" to "why" to understand code behavior.

Profiling List

The Profiling list page displays all collected code profiling data, helping users understand dynamic performance data of applications in different language environments.

The search box at the top allows you to enter a Profile ID to quickly filter target data.

The quick filter box on the left allows you to quickly filter target Profiling data through multiple filter options. The default filter options for the Profiling page include service name, host, environment, version, and language.

The data list on the right displays the occurrence time, host, and language for each Profiling data within the selected time period by default. The list is sorted by time in descending order by default, and users can customize ascending or descending order by clicking other headers.

Profiling Details

Click on a Profiling data entry in the list to open a drawer page on the right showing the details.

Two dropdown boxes at the top: the first one allows you to select different types, and the second one allows you to select different methods.

The flame graph in the middle visually displays the name, call hierarchy relationship, and performance status of each execution method.

The view dimensions on the right are all selected by default, and you can freely check the data you want to focus on analyzing.