Benchmarks
Measured on a Raspberry Pi 5
Real code, timed one leg at a time with microvm bench — 10 runs after a discarded warm-up, image hot in the page cache. Medians.
The split is the point. Booting the sandbox costs 170–300 ms and barely tracks image size — rootfs images are hardlinked into each jail, not copied. What varies is Run the code: a compiler for Go and Rust, the tsx transform for node, 71–79% of those three totals and no part of it a cost of starting a microVM.
42 cold boots across the four images. Host work is ~1 ms of it. The guest kernel is the largest named phase, which is why sandboxes boot quiet: every kernel printk is a synchronous write to an emulated UART the guest blocks on, so letting it narrate a successful boot cost 87 ms — quieting it took the guest kernel from 169 ms to 82 ms and a create from 288 ms to 170 ms. The console stays attached at KERN_ERR, so a panic still prints with its call trace.
That before-and-after is one image measured twice, so it was checked against a second: a separately built python rootfs, served by a different daemon on the same host, creates in 152 ms quiet — consistent with the 170 ms above rather than particular to the image the table was built from. The 119 ms remainder is the next thing worth attacking.