RFR: 6364: Improvements to the Thread Graph [v4]

Alex Macdonald aptmac at openjdk.java.net
Tue Aug 25 14:35:16 UTC 2020


> This patch addresses JMC-6364 [[0]](https://bugs.openjdk.java.net/browse/JMC-6364), the epic for tracking Improvements
> to the JFR Thread Graph. This RFR is also a follow-up to an RFC
> [[1]](http://mail.openjdk.java.net/pipermail/jmc-dev/2019-October/001454.html) that was posted to the jmc-dev list and
> incorporates the feedback that was brought up during discussion.  The new design and features was imagined in
> collaboration with our UX team, and the implementation has been a joint effort between myself and Jessye (@jessyec-s) -
> we had been originally collaborating on a fork of the old (unofficial) JMC GitHub repo. I've folded all the commits
> down into one because the older commits were merged using PRs with a similar format (e.g., `jmc/pull/23`) to this repo,
> so to avoid accidental noise (sorry about that) on other PRs I've just folded them away. If anyone is interested in the
> individual commits that got to this point, I've kept them around in the old repo
> [[2]](https://github.com/aptmac/jmc-old/commits/jfr-threads-page).  This PR aims to improve the usability and
> functionality of the JFR Threads Page by extending and enhancing existing classes. In an attempt to not clutter this PR
> with lots of images and explanatory text, I've created a gist
> [[3]](https://gist.github.com/aptmac/61808c89bfcf1888080884fc8a61bd36) that provides information and images/gifs of the
> new components and intended functionality.  Gist: https://gist.github.com/aptmac/61808c89bfcf1888080884fc8a61bd36
> Summary of changes:
> - Introduction of canvases to display the thread names (left) and timeline (bottom)
> - Scrolled composites to house the text and chart canvases, for vertical scrolling of the chart area
> - Timeline canvas (bottom) is draggable for panning the chart
> - Current threads table has been re-located to a popup table
> - New filter bar (top) which alters the chart view based on time ranges and desired visible activity lanes
> - New display bar (right) which houses the zoom mechanics
> - New zoom pan component for easily navigating the chart
> - Introduction of a colour palette to increase contrast between neighbouring activity lanes
> - Controls to change the height of the thread lanes
> - updated and new uitests
> 
> Before:
> ![before](https://i.imgur.com/TNfGrtJ.png)
> 
> After:
> ![after](https://user-images.githubusercontent.com/10425301/71993902-dfd93200-3205-11ea-8249-cc50409a7a9f.png)
> 
> Let me know if you have any questions about the design & functionality.
> 
> [0] https://bugs.openjdk.java.net/browse/JMC-6364
> [1] http://mail.openjdk.java.net/pipermail/jmc-dev/2019-October/001454.html
> [2] https://github.com/aptmac/jmc-old/commits/jfr-threads-page
> [3] https://gist.github.com/aptmac/61808c89bfcf1888080884fc8a61bd36

Alex Macdonald has updated the pull request incrementally with one additional commit since the last revision:

  run mvn:spotless for uitests

-------------

Changes:
  - all: https://git.openjdk.java.net/jmc/pull/27/files
  - new: https://git.openjdk.java.net/jmc/pull/27/files/031668e1..d8cfe7d4

Webrevs:
 - full: https://webrevs.openjdk.java.net/jmc/27/webrev.03
 - incr: https://webrevs.openjdk.java.net/jmc/27/webrev.02-03

  Stats: 70 lines in 3 files changed: 1 ins; 0 del; 69 mod
  Patch: https://git.openjdk.java.net/jmc/pull/27.diff
  Fetch: git fetch https://git.openjdk.java.net/jmc pull/27/head:pull/27

PR: https://git.openjdk.java.net/jmc/pull/27


More information about the jmc-dev mailing list