Skip to content

JAWS v2.0.0

Latest

Choose a tag to compare

@kylefoxaustin kylefoxaustin released this 29 May 18:26
· 2 commits to main since this release

JAWS v2.0.0 is a substantial rewrite focused on precision and real memory bandwidth.

⚠️ Breaking changes: the CLI now uses standard GNU-style -- flags, and numpy is now a required dependency.

Highlights

  • No allocation overshoot. v1 built a temporary Python list for every chunk (a ~9× transient spike) and used mlockall(MCL_FUTURE), which force-populates the entire address space (2–3× the requested RAM). v2 allocates with numpy and locks each buffer individually with mlock(), so resident memory lands within ~2–3% of the target.
  • Real multi-core bandwidth. v1's per-byte Python loops were GIL-bound to a single core. v2 uses vectorized numpy operations that release the GIL — measured at 450%+ CPU (4–5 cores) at high intensity.
  • Genuinely low-CPU static mode (~0.2% steady state), instead of silently running the same aggressive threads as dynamic mode.
  • Built-in VmSwap residency self-check after locking.
  • Clean Ctrl+C shutdown, hardened ctypes/mlock with errno reporting, and clean Linux-only support.
  • Added pyproject.toml and requirements.txt.

Migrating from v1

v1 v2
-low / -mid / -high --low / --mid / --high
-percent 42 --percent 42
-chunk=1GB --chunk 1GB
-intensity=8 --intensity 8
-static --static

Install dependencies with pip install -r requirements.txt (now includes numpy).

🤖 Generated with Claude Code