A fresh VM for every task
An 18 ms cold boot and a 1.2 ms warm claim mean a new, isolated machine costs less time than the request that asked for it. Nothing carries over from one task to the next.
Performance
A full virtual machine with its own kernel, booted in 18 ms. A warm VM handed to a job in 1.2 ms. A saved VM back, mid-program, in 7.8 ms. Fifty VMs running in 125 ms. Measured on macOS, Linux and Windows, x86 and ARM, from laptops to cloud bare metal.
Median of 20 runs on each platform, with the 99th percentile in parentheses. Every figure is wall time seen by the caller around the real flash command, except cold boot, which the VMM measures from kernel start to a running guest.
| Measure | macOS | Linux x86 | Linux x86, cloud bare metal | Linux ARM, cloud bare metal | Linux ARM (Raspberry Pi 5) | Windows x86 |
|---|---|---|---|---|---|---|
| Cold boot, kernel to running | 18 ms (19) | 42 ms (46) | 42 ms (50) | 63 ms (64) | 92 ms (112) | 212 ms (224) |
| Create to first command output | 60 ms (65) | 71 ms (79) | 70 ms (72) | 90 ms (90) | 94 ms (115) | 250 ms (262) |
| Claim a warm VM from a pool | 2.0 ms | 2.0 ms | 1.2 ms | 1.3 ms | 3.0 ms | 6.9 ms |
| Restore a snapshot to running | 27 ms (29) | 26 ms (29) | 17 ms (20) | 7.8 ms (8.3) | 30 ms (32) | 45 ms (77) |
| Fork a running VM, child running | 36 ms (43) | 45 ms (78) | 40 ms (64) | 58 ms (111) | 166 ms (213) | 38 ms (69) |
| Wake a sleeping VM to running | 27 ms | 11 ms | 8.4 ms | 19 ms | 31 ms | 39 ms |
| Host memory per idle VM (256 MB given) | 69 MB | 44 MB | 45 MB | 27 MB | 27 MB | 42 MB |
| 50 VMs started at once, all running | 214 ms | 338 ms | 125 ms | 274 ms | 2.5 s | 1.0 s |
An 18 ms cold boot and a 1.2 ms warm claim mean a new, isolated machine costs less time than the request that asked for it. Nothing carries over from one task to the next.
A snapshot restore brings a running program back in 7.8 ms, and a sleeping VM wakes in 8.4 ms. Long-lived agent sessions cost nothing while they wait.
A live fork copies a running VM — memory, disk and processes — into a new one in 36 ms, so one expensive setup feeds any number of parallel attempts.
An idle VM given 256 MB uses as little as 27 MB of real host memory, and 50 VMs come up together in 125 ms. One machine runs a fleet.
Per-VM network rules are enforced on every packet outside the guest, at full speed: a 20 MB transfer runs at the same rate with rules on as with rules off — 1,751 vs 1,679 Mbit/s on Linux x86 cloud bare metal, 1,908 vs 1,929 Mbit/s on Linux ARM cloud bare metal, 897 vs 901 Mbit/s on macOS.
The io_uring completion path keeps storage moving efficiently while vCPU limits remain enforced.
Capability removal is synchronous and completes before guest execution, preserving a predictable startup path.