This flamegraph component is known to be used in JDK Mission Control 9.0 and in the Datadog plugin for IntelliJ.
var flamegraphView = new FlamegraphView<Node>();
flamegraphView.setFrameRender(
new DefaultFrameRenderer<>(
FrameTextsProvider.of(
frame -> frame.isRoot() ? "root" : frame.actualNode.getFrame().getHumanReadableShortString(),
frame -> frame.isRoot() ? "" : FormatToolkit.getHumanReadable(frame.actualNode.getFrame().getMethod(), false, false, false, false, true, false),
frame -> frame.isRoot() ? "" : frame.actualNode.getFrame().getMethod().getMethodName()
),
new DimmingFrameColorProvider<>(defaultFrameColorMode.colorMapperUsing(ColorMapper.ofObjectHashUsing(defaultColorPalette.colors()))),
FrameFontProvider.defaultFontProvider()
)
);
jpanel.add(flamegraphView.component);
// later, fill in the data
var listOfFrames = FrameBox.flattenAndCalculateCoordinate(new ArrayList<Node>(), ...);
flamegraphView.setModel(
new FrameModel<>(
"title, events (CPU, Locks)", // used in the root "frame"
(a, b) -> Objects.equals(a, b), // used to identify equal frames
listOfFrames
)
);Earlier builds used to set up the view using setRenderConfiguration, this is deprecated for removal and code should
be migrated to use setFrameRender instead.
| Method | Description | Default |
|---|---|---|
|
Display mode: |
|
|
Click behavior: |
|
|
Show/hide the navigation minimap |
|
|
Highlight identical frames elsewhere in the graph on hover |
|
|
Customize tooltip text for frames |
— |
|
Handle right-click context menu on frames |
— |
|
Callback when a frame is selected (single-click) |
— |
|
Listen for frame hover events |
— |
|
Highlight frames matching a search |
— |
Use FlamegraphImage to render a flamegraph to a static image (e.g., for export or reports).
Snapshot versions will be delivered at
Maven Central Portal: https://s01.oss.sonatype.org/content/repositories/snapshots/io/github/bric3/fireplace