Benchmarks / Sandbox cold start
measuredCold start, by primitive
A V8 context ready to execute JavaScript in 0.13 ms, the median of one pass, reproducible by one command.
- harness
- hanzoai/benchmarks · sandbox
node sandbox/sandbox.mjsprints the table on this page — transcribed from bench/README.md, the pass of 2026-09-07
What is measured
The time from asking for a sandbox to having one that will execute code. A V8 context is a fresh global inside a V8 isolate that is already running: it is cheap because it shares that isolate’s heap. Timings are the median of the pass.
Results
an M-series laptop · the pass of 2026-09-07 · median of the pass
| primitive | measured here | what it can run |
|---|---|---|
| V8 context | 0.13 ms | JavaScript, sharing the heap |
A context runs JavaScript, which makes it the right primitive for a JavaScript transform. An agent that installs a package or runs a shell gets a microVM instead, which is a separate measurement.
What this measures, and what it does not
Cold start is not throughput. This is the time to the first instruction, on an idle machine. It says nothing about what happens when a thousand sandboxes are asked for at once.
One machine, one day. A single pass on one laptop, reproducible by one command. Read it as a floor that has been established rather than as a service level.
It is one of three costs, not the cost. A sandbox is what an agent needs to run a command. What it costs to keep an agent that is doing nothing is 477 bytes and a 0.034 ms resume, and what a running agent holds is 601 bytes of heap and 125 ns to spawn. The three are separate measurements with separate commands and they do not add up into a single number.
Related in runtime
LoCoMo · MemoryAgentBench · LongMemEval · CronQuestions · RepoBench-R · LoCoMo · subject scope · LoCoMo-Conv · Engine prefill on CUDA vs llama.cpp · GPQA-Diamond
harness and the committed table: hanzoai/benchmarks · sandbox · sandbox.mjs needs a container runtime; colima start is enough on macOS