RFR: 7451: Add heat map view [v4]

Marcus Hirt hirt at openjdk.java.net
Sun Dec 5 13:42:12 UTC 2021


On Fri, 3 Dec 2021 17:34:49 GMT, Alex Ciminian <duke at openjdk.java.net> wrote:

>> This PR adds a new plugin (`flightrecorder.heatmap`) which renders a visualisation similar to the one in [this Observable notebook](https://observablehq.com/@cimi/jfr-heatmap).
>> 
>> The code is simpler than both the flame view and the graph view, because of less rendering options and less dependencies - the heatmap only requires d3 and currently does not support any user configuration.
>> 
>> Each cell represents 100 milliseconds from the recording. We decided to automatically adjust the size of the cell so that the entire heatmap fits inside the window. This is different from the observable notebook which ensured each row represented 6s (i.e. it had a fixed number of 60 columns). The auto-sizing seems to work well with both small and large recordings, although we lose consistency when we resize the window and some periodic patterns are no longer visible when we vary the number of columns.
>> 
>> Feedback welcome, here's how this looks now:
>> 
>> 
>> ![Screenshot 2021-11-30 at 22 29 46](https://user-images.githubusercontent.com/348973/144139450-a6ec9cb9-4a38-4678-82ad-3f0d1c30ad29.png)
>> (short recording - 2 min)
>> 
>> 
>> ![Screenshot 2021-11-30 at 22 29 11](https://user-images.githubusercontent.com/348973/144139426-d3dc0d01-5d28-4f29-8199-0b020b5e4fb7.png)
>> 
>> (long recording - 15 min)
>
> Alex Ciminian has updated the pull request incrementally with two additional commits since the last revision:
> 
>  - Convert indentation to tabs in heatmap.js
>  - Add copyright notice to heatmap.js

@cimi - this one is ready for /integrate.

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

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


More information about the jmc-dev mailing list