Skip to content
Try Hanzo
Language: English (United States)

An agent as a goroutine

Benchmarks / Live agent footprint

measured

A dormant agent is a row; a running one still has to hold its place. 601 bytes of heap per live agent, 125 ns to spawn one, 107 ms to wake a million — and the three language runtimes that can sit inside one.

Results
Hanzo, measuredthe published figure
  • heap per live agent601 bytes1.2 MB per isolate, isolated-vm
  • spawn one125 ns2.79 ms, isolated-vm
cd goroutine && go build -o /tmp/g . && /tmp/g

prints the table on this page — transcribed from bench/README.md, the pass of 2026-09-07

Results

an Apple M4 Max, 16 cores · the pass of 2026-09-07 · memory was identical on all five runs; timings are medians

How to get this wrong

Benchmark a built binary. Under go run the compile is counted and spawn reads 253 ns instead of 125 ns, an error from the command you used to start the measurement. The reproduce line on this page builds first for exactly that reason.

What is measured

A dormant agent is a row on disk. An agent that is running still has to hold its place, and the question is what that place costs. Here it is a goroutine: the heap it occupies, the time to start one, and the time to wake a million of them at once. The comparison column is what a platform built on V8 isolates publishes for the same two quantities.

cd goroutine && go build -o /tmp/g . && /tmp/g

Build on Hanzo Cloud