Ash ash
Benchmarks

Faster than HashLink's JIT

These benchmarks cover fib(40), Mandelbrot, n-body, and several kinds of function calls. They compare Ash with HashLink's released JIT, the experimental hl2-ir JIT, compiled HL/C output, and Haxe's JVM target. Results are checked against accepted checksums and published by CI on each push to main.

HashLink JIT Ash HashLink hl2-ir HashLink/C (AOT) Haxe JVM
lower is better · median ms · 1.00× = HashLink JIT total
Loading benchmark results…
Bars show median elapsed time for checksum-verified runs. Compilation time depends on the execution mode. Ash AOT and HashLink/C, tagged AOT, are compiled to native binaries before timing starts. Their builds take one to six seconds, excluded from the bars. Haxe-to-JVM compilation is also excluded. JIT compilation happens during execution and is included in the timing. haxe -hl main.c generates C, which this benchmark compiles with clang. Ash emits object code directly through LLVM. Using clang for HL/C keeps both native builds on LLVM. Each benchmark runs in a separate CI job. Engines within a row share a machine, but different rows and sweeps may use different hardware. Compare engines within the same row. Hover over a timing to see its CPU.