Converts Java Flight Recorder method profiling samples into FlameGraph-compatible stack traces for performance analysis.
jfr-flame-graph is a Java application that converts method profiling samples from Java Flight Recorder (JFR) dump files into a stack trace format compatible with FlameGraph visualizations. It solves the problem of visualizing JFR performance data by transforming raw profiling events into the folded format required to generate interactive CPU and memory flame graphs. This allows developers to analyze application performance bottlenecks visually.
Java developers, performance engineers, and DevOps professionals who use Java Flight Recorder for application profiling and need to visualize the results using flame graphs for performance analysis and optimization.
Developers choose jfr-flame-graph because it provides a direct, automated bridge between Java's built-in JFR profiling tool and the popular FlameGraph visualization system, eliminating manual conversion steps. Its support for multiple JFR event types and filtering options offers flexibility in analyzing different performance aspects.
Get Method Sampling from Java Flight Recorder Dump and convert to FlameGraph compatible format.
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Supports converting various JFR events like CPU, memory allocations, exceptions, monitor-blocked, and I/O to flame graphs, as listed in the event options from the help output.
Allows filtering by timestamp range and customizing stack traces with options to hide arguments, ignore line numbers, or use simple names, enabling targeted analysis as shown in the command-line help.
Includes helper scripts like create_flamegraph.sh to automate the end-to-end process from JFR file to SVG flame graph, streamlining workflow for repetitive profiling tasks.
Outputs in folded or JSON format directly compatible with Brendan Gregg's FlameGraph toolkit, ensuring seamless integration for visualization without manual conversion steps.
Requires Oracle JDK 8 for building and running, which is antiquated and may not be supported in modern development environments, as noted in the prerequisites section.
Relies on the unsupported JMC Parser library, increasing the risk of compatibility issues and lack of future updates, as admitted in the README.
Shows signs of reduced maintenance, such as the removal of build status due to Travis changes, indicating potential reliability and compatibility concerns over time.