Skip to content

binjr

binjr v3.20.1 is now available! 🎉

Released on Sun, 10 Nov 2024

This is an interim release which fixes a regression introduced in v3.20.0 that severely impacts the peformances of the CSV and Log files adapters.

New UI feature: Splittable visualization area

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).

New graphics settings are coming to binjr

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.

The benefit of wall clock time data in method profiling

As a companion to our overview of the new JFR data adapter in binjr, here’s an illustration of how having good visualization options for the wall clock time component of method profiling events can help gain deeper insights out of a JFR profile, from a recent Real Lifeâ„¢ investigation.

In this example, we are faced with an application whose startup time increased dramatically following a migration of some pieces in the software stack, to the point of becoming unbearable.

New Data Adapter: JDK Flight Recorder

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.