-
Notifications
You must be signed in to change notification settings - Fork 713
Open
Description
Feature Request
Summary
Add the ability to group profiling samples by more granular code location attributes, specifically:
- Absolute line number within a file
- Relative line number from function start
Motivation
Currently, samples are primarily grouped by function/method names. However, for complex functions with multiple code paths, it would be valuable to analyze performance at a more granular level by grouping samples by specific line numbers within those functions.
This would enable users to:
- Identify performance hotspots within large functions
- Analyze specific code paths or branches more precisely
- Understand which lines within a function consume the most resources
- Compare performance across different sections of the same function
Prior Art: pprof Granularity Options
The pprof tool already supports multiple granularity levels for aggregation:
granularity
-functions Aggregate at the function level.
-filefunctions Aggregate at the function level.
-files Aggregate at the file level.
-lines Aggregate at the source code line level.
-addresses Aggregate at the address level.
Pyroscope could provide similar GroupBy options, particularly implementing the -lines equivalent for line-level aggregation.
Use Cases
- Long function optimization: Identify which sections of a large function are the bottleneck
- Loop analysis: See which iterations or branches within loops consume the most time
- Conditional path analysis: Understand performance differences between if/else branches
- Source code correlation: Make it easier to map profiling data directly to specific source lines
Additional Considerations
- UI/UX considerations for displaying line-level granularity
- Performance implications of querying at line-level granularity
- Could also consider file-level and address-level grouping similar to pprof
Metadata
Metadata
Assignees
Labels
No labels