feat: Add ability to GroupBy Samples by line number and relative line number to function start
- Dominant language
- Go
- Stars
- 11.7k
- Forks
- 802
- Avg merge
- 1d 19h
- Merged PRs (30d)
- 80
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
1. **Long function optimization**: Identify which sections of a large function are the bottleneck
2. **Loop analysis**: See which iterations or branches within loops consume the most time
3. **Conditional path analysis**: Understand performance differences between if/else branches
4. **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
Contributor guide
No contributing guide indexed for this repository
Assessment
This issue has not been assessed yet.