RFR: Enhancements for Shenandoah's generational mode
William Kemper
wkemper at openjdk.org
Tue Aug 30 17:29:50 UTC 2022
During the course of the development of the generational mode for Shenandoah, we have found this tool useful to demonstrate progress and changes in behavior. We have also found this tool useful for troubleshooting performance issues and debugging crashes. There are many changes here, but these are the highlights:
* The age and affiliation of a region are encoded in the border and shape of the region (respectively).
* Phases are encoded with different colors for different generations and whether they have degenerated.
* A mechanism to record and replay session has been added (record feature is implemented in hotspot and is not yet upstream).
* Popup windows can be opened for additional detail on regions, as well as their history.
* The legend shows the number of regions in the state described by the legend item.
* Visualizer can now 'find' VMs running Shenandoah with region sampling enabled.
Many months ago we broke backward compatibility on our branch, but we have recently restored it so the time seems right for a PR. Thank you for looking and sorry for the massive number of changes.
-------------
Commit messages:
- Fix whitespace errors detected by jcheck
- Create two test cases for the timeline paint and spotlight paint method
- Keyboard shortcuts for controlling playback
- Create a slider control for moving through recordings
- Fixing the front snapshot index not adding
- Timeline for region popup window
- Fix speed up problem after pausing the visualizer
- Add region detail popup window
- Summary view (#5)
- Fix Empty Committed on Region (#6)
- ... and 36 more: https://git.openjdk.org/shenandoah-visualizer/compare/bc55c9c0...ab6ccb70
Changes: https://git.openjdk.org/shenandoah-visualizer/pull/1/files
Webrev: https://webrevs.openjdk.org/?repo=shenandoah-visualizer&pr=1&range=00
Stats: 7057 lines in 24 files changed: 6763 ins; 88 del; 206 mod
Patch: https://git.openjdk.org/shenandoah-visualizer/pull/1.diff
Fetch: git fetch https://git.openjdk.org/shenandoah-visualizer pull/1/head:pull/1
PR: https://git.openjdk.org/shenandoah-visualizer/pull/1
More information about the shenandoah-dev
mailing list