Skip to content

Runtime Benchmarks

Hara runtime benchmarks

VM and compiled tiers measured with checksum-verified workloads. Lower prepared-call time is better.

Evidence profile: smoke. Standard-profile runs are required before publishing reference thresholds.

Rust

hara-rust-vm

1.360 ms
Host
Native
Engine
Rust bytecode VM
Tier
bytecode
Artifact
hara eval --engine vm
Size
Recorded by a standard publication run
WorkloadPreparedFirst
arithmetic-branch-mix1.3596 ms1.3528 ms
mutable-array-update0.6570 ms0.6430 ms
mutable-object-counters0.5965 ms0.6118 ms
persistent-nested-transform2.2788 ms2.7002 ms
recursive-tree-eval2.2694 ms2.2929 ms

hara-rust-full

0.019 ms
Host
Native
Engine
Rust whole-function compiler
Tier
compiled Wasm
Artifact
hara eval --engine whole-wasm
Size
Recorded by a standard publication run
WorkloadPreparedFirst
arithmetic-branch-mix0.0207 ms0.0450 ms
mutable-array-update0.0060 ms0.0328 ms
mutable-object-counters0.0078 ms0.0341 ms
persistent-nested-transform0.0512 ms0.0974 ms
recursive-tree-eval0.0195 ms0.0417 ms

WebAssembly

hara-wasm-vm

3.362 ms
Host
Browser
Engine
Rust bytecode VM in Wasm
Tier
bytecode
Artifact
@hara-lang/browser/vm
Size
3.04 MB ESM · 876 KB gzip
WorkloadPreparedFirst
arithmetic-branch-mix3.3625 ms—
mutable-array-update1.8923 ms—
mutable-object-counters1.7857 ms—
persistent-nested-transform3.9571 ms—
recursive-tree-eval3.6143 ms—

hara-wasm-full

0.028 ms
Host
Browser
Engine
Whole-function Wasm compiler
Tier
compiled Wasm
Artifact
@hara-lang/browser/full
Size
3.30 MB ESM · 954 KB gzip
WorkloadPreparedFirst
arithmetic-branch-mix0.0222 ms—
mutable-array-update0.0054 ms—
mutable-object-counters0.0335 ms—
persistent-nested-transform0.2940 ms—
recursive-tree-eval0.0283 ms—

Truffle

hara-truffle-jvm

2.881 ms
Host
JVM
Engine
Graal/Truffle interpreter
Tier
optimizing VM
Artifact
java … hara.truffle.Main
Size
Recorded by a standard publication run
WorkloadPreparedFirst
arithmetic10.9614 ms99.3926 ms
branchy-loop10.9389 ms94.1287 ms
function-call5.0374 ms90.5256 ms
noop0.0206 ms79.2935 ms
persistent-map1.7895 ms84.3275 ms
persistent-vector2.2175 ms83.7090 ms
sequence-navigation2.8805 ms88.8175 ms

hara-truffle-native-vm

NOT MEASURED
Host
Native Image
Engine
Truffle native fallback
Tier
VM
Artifact
target/hara-truffle-native-vm
Size
Recorded by a standard publication run

This target is fully specified but was not built on the evidence host. A standard publication runner must supply its measurement artifact.

hara-truffle-native-full

NOT MEASURED
Host
Native Image
Engine
Truffle native compiled tier
Tier
compiled
Artifact
target/hara-truffle-native-full
Size
Recorded by a standard publication run

This target is fully specified but was not built on the evidence host. A standard publication runner must supply its measurement artifact.

HTTP frameworks

Single worker/event loop, loopback HTTP/1.1, keep-alive, concurrency 8.

RouteServerRequests/secp50 msp95 msp99 ms
/hellohoplite48461.30.0000.0000.000
/jsonhoplite48285.80.0000.0000.000
/delayhoplite281.227.00028.00028.000
/helloopenresty49975.00.0000.0000.000
/jsonopenresty56513.10.0000.0000.000
/delayopenresty285.727.00027.00028.000
/hellonginx58530.90.0000.0000.000
/jsonnginx63816.20.0000.0000.000
/hellofastify31220.70.0000.0001.000
/jsonfastify31520.90.0000.0001.000
/delayfastify274.228.00029.00030.000
/helloaxum52151.20.0000.0000.000
/jsonaxum45903.10.0000.0000.000
/delayaxum276.928.00029.00029.000
/delaynginxnot applicable———

Methodology

Every adapter checks the same expected result. Compilation, first execution, and prepared execution are separate boundaries. Browser windows use adaptive batching; HTTP values are medians across trials. Every target remains fully specified even when a particular evidence host cannot build it.