[Custom Issue]: Generate a peformance timeline of the top routines
- Dominant language
- C++
- Stars
- 6
- Forks
- 11
- Avg merge
- 18h 7m
- Merged PRs (30d)
- 1
Description
### Contact Details
michele.guidolin@metoffice.gov.uk
### Are there any linked Issues or Pull Requests?
_No response_
### Brief description
It would be useful if Vernier had the possibility to generate a timeline of the top routines to understand if there is a sudden slowdown.
For example, if there is model that have the following routines structure:
* init
* read_netcdf
* write_netcdf
* iterate_day
* physics1
* physics2
* physics3
* finilize
If would be nice to have a report that show:
```
When(s) What How Long (s)
10.2 init 50.3
60.5 read_netcdf 10.1
70.5 read_netcdf 105.1
175.5 iterate_day 205.0
- 178 physics1 3.1
- 181 physics2 100.1
- 281 physics3 90.0
380.5 iterate_day 200.0
580.5 iterate_day 205.0
....
```
Extra feature would be to crate histogram of for example `iterate_day` to see if there are differen "mode" on the ieration.
Or have some metadata API that tell which file is being open that take longer.
### Further details of the issue.
_No response_
Contributor guide
Research direction
Start by reviewing Vernier's existing profiler and report-generation entry points; the issue does not name specific files or tests. Clarify whether the timeline, routine histogram, and file metadata are all required, then define an output format and tests that demonstrate the completed reporting behavior.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- cpp
- Domain
- devtools, performance
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Needs clarification
- Newbie friendliness
- 25/100