OrviScript 0.6.2 · verified locally

One million iterations. Near Node.js time.

OrviScript reached 115.9 ms end to end, compared with 102.3 ms for Node.js and 384.8 ms for Python on the same Ryzen 9 9950X3D machine.

Same program · one million iterations

Close to Node. Clearly ahead of Python.

Node.js 24.22.1± 24.5 ms · 84.1–218.2 ms
102.3 ms
Python 3.15.2± 69.1 ms · 292.5–586.1 ms
384.8 ms
Node is about 1.13× faster than OrviScript.

OrviScript is about 3.32× faster than Python in this workload. Node measured 3.76× faster than Python.

Hyperfine detected statistical outliers, especially in the Node and Python results. This is a local comparative measurement, not a promise of identical performance in every program.

Inside the runtime

Less lookup. Almost no allocation.

The primary cost was not parsing. It came from boxed futures, allocation, and variable lookup by name. The fast path removes those costs for supported synchronous code.

649.2 → 50.7 mscomplete in-process pipeline
~15,023,685 → 20allocations for one million iterations
0.5 µsempty backend startup
71.9 msminimal Windows process

What changed in 0.6.1

A fast path without splitting the language.

A program uses the bytecode fast path only when the supported subset preserves the same typing and execution rules. Other code automatically uses the compatible interpreter.

Bytecode fast path for synchronous programs

Indexed variable slots instead of name lookups

Fast if, while, blocks, operators, and print

Typed slots plus short-circuit && and ||

Automatic fallback for functions, collections, modules, and async

Method

One workload. The same result.

Hyperfine measurement from October 27, 2026 on Windows with a Ryzen 9 9950X3D processor: 5 warmups and 30 runs with the shell disabled. OrviScript 0.6.2, Node.js 24.22.1, and Python 3.15.2 each started as a separate process, executed one million summing iterations, and returned checksum 499999500000. Results include process startup, program loading, and execution.

Ryzen 9 9950X3DWindowsHyperfine 1.20.05 warmups30 runsshell=none