Skip to content

Investigate long-run mandelbrot.awk performance degradation #474

@bertysentry

Description

@bertysentry

Summary

Running mandelbrot.awk for a longer session shows a significant performance drop toward the end of the run. Shorter runs now show strong peak performance after the typed tuple refactor and dispatch-loop extraction, but longer runs appear to degrade substantially.

Reproduction

Environment used when observed:

jawk --profile -f /mnt/c/tmp/mandelbrot.awk -v profile=1 -v nframes=400

In WSL, jawk was an alias to the standalone jar:

alias jawk='java -jar /mnt/c/Dev/jawk/target/jawk-6.4.00-SNAPSHOT-standalone.jar'

Observed behavior

With nframes=400, frame rate decreases heavily toward the end of execution, reportedly down to around 2 FPS.

Expected behavior

Performance should remain reasonably stable across long runs after JVM warmup. If there is unavoidable output or profiling overhead, it should be identified and documented.

Areas to investigate

  • Allocation rate and GC pressure during long runs
  • Profiling data accumulation overhead
  • Output sink / terminal rendering behavior across many frames
  • Runtime data structures that may grow across frames
  • Any per-frame retained state in AVM/JRT

Notes

This appears separate from the typed tuple refactor performance work. The short-run nframes=100 mandelbrot benchmark is now faster than Jawk 6.3.00 after reducing executeTuples() bytecode size.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions