Skip to content

A visualization and analysis tool for TornadoVM bytecode execution logs that helps developers understand and optimize their applications running on TornadoVM

Notifications You must be signed in to change notification settings

mikepapadim/tornadovm-bytecode-analyzer

Repository files navigation

TornadoVM Bytecode Analyzer Icon

A visualization and analysis tool for TornadoVM bytecode execution logs that helps developers understand and optimize their applications running on TornadoVM.

Overview

The TornadoVM Bytecode Analyzer provides interactive visualizations and detailed analysis of task graphs, memory operations, and bytecode execution patterns. This helps developers optimize their applications and understand data flow between tasks.

TornadoVM Bytecode Analyzer Demo

The analyzer offers multiple views for comprehensive analysis of your TornadoVM applications:

TornadoVM Bytecode Analyzer Basic View

Features

Task Graph Analysis

  • Visualize task graph dependencies and execution flow
  • Analyze memory operations and data transfers between tasks
  • Track object lifecycles across different task graphs
  • Identify memory allocation patterns and potential bottlenecks

Memory Analysis

The tool provides detailed memory operation analysis:

TornadoVM Memory Analysis View

  • Memory Timeline: Track memory operations across task graphs with:

    • 🟢 Memory allocations
    • 🔵 Host-to-device transfers
    • 🟣 Device-to-host transfers
    • 🔴 Memory deallocations
    • 🟠 Device buffer operations
  • Object Lifecycle: Follow individual objects through their complete lifecycle

  • Memory Usage: Monitor total memory usage and allocation patterns

  • Object Persistence: Analyze object retention and deallocation patterns

Bytecode Details

  • Detailed view of all bytecode operations
  • Filter and search capabilities
  • Operation distribution analysis
  • Task-specific operation breakdowns

Task Graph Analysis

The Task Graph Analysis view provides insights into the execution flow and memory operations of your TornadoVM application:

  • Task Graph Dependencies: Visualize how different task graphs depend on each other and the data flow between them
  • Memory Timeline: Track memory allocations, deallocations, and overall memory usage across task graphs
  • Task Details: Examine individual tasks, their operations, and memory patterns

Task Graph Analysis View

The visualization shows:

  • Vertical lines separating different task graphs
  • Memory usage over time (blue line)
  • Allocations (green dots) and deallocations (red X)
  • Task boundaries and execution sequence

Installation

Prerequisites

  • Python 3.8 or higher

Setup

  1. Install dependencies:
pip install -r requirements.txt
  1. Run the analyzer:
streamlit run tornado-visualizer-fixed.py

Contributing

This tool is part of the TornadoVM project. For contributions, please follow the TornadoVM contribution guidelines.

About

A visualization and analysis tool for TornadoVM bytecode execution logs that helps developers understand and optimize their applications running on TornadoVM

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages