Enhance the comparison of snapshots
Nobody has claimed this yet.
- Dominant language
- Java
- Stars
- 3.3k
- Forks
- 334
- PR merge metrics
- No merged PRs in 30d
Description
The problem
When comparing 2 CPU snapshots, they are not shown side-by-side but one on top of the other. This makes it almost impossible to see the (time) difference between the executed methods between them ergo to determine if the application became slower.
Use case
Comparing 2 CPU snapshots of 2 different versions of the same application to determine if the application got faster or slower.
Let's say an application is being developed and one wants to compare the officially released version vs the current alpha version. One would let both applications run, sample them and then compare the snapshots.
Proposed enhancement
It would be useful to have all the information about each method in 1 line and have the difference between measurements (time, total time(CPU), hits) in one/several extra column/s.
For example, if I compare 2 nps files with the following calls:
Released.nps
- methodA: total time=10ms, hits=2
- methodB: total time=50ms, hits=1
Alpha.nps
- methodB: total time=70ms, hits=2
- methodC: total time=15ms, hits=3
... then I would expect to see the following 3 lines when comparing both files:
Released.nps vs Alpha.nps
- methodA: total time (Released | Alpha)=10ms | -, total time difference (Alpha - Released)=-10ms | hits (Released | Alpha)=2 | -, hits difference (Alpha - Released)=-2 [Optionally, the line would be color-coded in green since Alpha is faster than Released]
- methodB: total time (Released | Alpha)=50ms | 70ms, total time difference (Alpha - Released)=20ms | hits (Released | Alpha)=1 | 2, hits difference (Alpha - Released)=1 [Optionally, the line would be color-coded in red since Alpha is slower than Released]
- methodC: total time (Released | Alpha)=- | 15ms, total time difference (Alpha - Released)=15ms | hits (Released | Alpha)=- | 1, hits difference (Alpha - Released)=1 [Optionally, the line would be color-coded in red since Alpha is slower than Released]
This way the user could easily determine if Alpha got faster/slower (because of the color-code and the column with the time difference) and also spot which methods have been introduced/removed in the Alpha version of the application.
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
No source file, test, or entry point is named. Start by locating the CPU snapshot comparison view and its handling of .nps files, then define how methods present in either snapshot are merged and how time and hit differences are displayed. Done means two snapshots can be compared side-by-side with missing methods, differences, and optional color coding represented.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- java
- Domain
- performance
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 30/100