Javaflame - Capture function arguments, visualize them in a flamegraph by Lucas de Carvalho Bueno

Discover JavaFlame, a debugging tool that captures function calls and arguments in Java applications, visualizing them in an interactive flamegraph for easier code analysis.

Key takeaways
  • JavaFlame is a debugging/investigation tool that captures function calls and arguments, visualizing them in a flamegraph format

  • Key features:

    • Intercepts all function calls and their argument values
    • Works with any Java code including external libraries
    • Generates HTML visualization with three views: flame graph, call graph, and hierarchical text
    • Runs locally/offline without external dependencies
    • Can be added as a Java agent without code modifications
  • Tool focuses on understanding program flow rather than performance metrics:

    • Shows actual parameter values unlike traditional profilers
    • Displays call relationships and ordering
    • Helps developers understand unfamiliar codebases
    • Useful for debugging and investigation scenarios
  • Filtering capabilities:

    • Can target specific packages/classes/methods
    • Supports Boolean expressions and negation
    • Helps manage memory usage by limiting scope
    • Can filter visualization results after capture
  • Usage considerations:

    • Not meant for production use due to performance impact
    • Best used in development/testing environments
    • Can be integrated with unit tests
    • Memory intensive when capturing all calls without filters
    • Works through bytecode instrumentation
  • Visualization features:

    • Interactive HTML output
    • Multiple thread support
    • Zoomable interface
    • Searchable call data
    • Exportable as images