Binjr has had the ability to detach a tab into a new window to allow the user to view more than one worksheet at a time for a while now, and this has proven to be a really useful feature, especially on multi-monitor setups.
But admittedly, it can be a tad fussy to set up when you want to view several worksheets neatly arranged in a grid on a single screen (unless your window manager is able to handle that for you, that is).
I’m considering adding a new sub-category to binjr’s Settings panel, which, for the time being, goes by the woefully unimaginative name of “Graphics”.
Not that I am planning to turn binjr into a video game engine or anything, but because I’ve recently felt the need to surface some existing JavaFX properties pertaining to how its rendering stack operates directly into the application. Up until now those were only settable via undocumented command line arguments, and having a more accessible way to control them seemed like a good idea.
It has been a pretty long time since we’ve added support for a new data source in binjr, but coming up in release 3.13 is something quite new indeed: support for recordings produced by JDK Flight Recorder (JFR, for short).
So what, exactly, is JFR? To quote Wikipedia:
JDK Flight Recorder is an event recorder built into the OpenJDK Java virtual machine. It can be thought of as the software equivalent of a Data Flight Recorder (Black Box) in a commercial aircraft. It captures information about the JVM itself, and the application running in the JVM. There is a wide variety of data captured, for example method profiling, allocation profiling and garbage collection related events. The technology was open sourced in 2018.
Analysis and visualization of flight recordings are normally done using JDK Mission Control (JMC).
Every single event recorded by JFR naturally includes a timestamp, making it a pretty straight-forward source of data for binjr, one that can certainly benefit for the freeform navigation and dynamic view composition binjr allows.