{
  "slug": "256-sandboxes-one-mac",
  "question": "How long do 256 sandboxes take to start on one Mac?",
  "answer": "One Mac started 256 headless gVisor Spaces (1 vCPU, 1 GiB each, up to 64 creates at once) in 26.05 s, from the first create to the last Space's first command (p50 of 10 batches, 0 of 2,560 failed), on a Mac Studio (Apple M2 Max, 96 GB), measured 2026-10-25.",
  "status": "measured",
  "url": "https://cua.ai/benchmarks/256-sandboxes-one-mac",
  "csv": "https://cua.ai/benchmarks/256-sandboxes-one-mac.csv",
  "markdown": "https://cua.ai/benchmarks/256-sandboxes-one-mac.md",
  "group": "Density and throughput",
  "current": {
    "run": "2026-10-25",
    "schema": "cua.bench-result/v1",
    "bench": "spaces-startup.gvisor-256",
    "slug": "256-sandboxes-one-mac",
    "metric": "all_256_ready_s",
    "value": 26.05,
    "unit": "s",
    "stat": "p50",
    "n": 10,
    "percentiles": {
      "p50": 26.05,
      "p90": 26.39,
      "p95": 26.59,
      "p99": 26.59,
      "min": 25.16,
      "max": 26.59
    },
    "extra": {
      "failed_total": 0,
      "spaces_total": 2560
    },
    "samples_csv": "samples.csv",
    "measured_at": "2026-10-25T01:35:00Z",
    "build": {
      "cua": "0.9.0",
      "cua_spacesd": "0.8.0",
      "app": "0.15.0",
      "source": "Cua Spaces 0.15.0 DMG (https://github.com/trycua/cua/releases/download/cua-spaces-v0.15.0/cua-spaces-0.15.0-darwin-universal.dmg, sha256 8725a09ba4132aa8a1667fa48c86416c91d5dec0d3c7dc93f88f5f3e29e0aba0): bundled cua 0.9.0, Helpers/cua-spacesd 0.8.0, cua-vz",
      "published": true,
      "harness": "built from tag cua-spaces-v0.15.0 (709b18d9ee) on the host: cargo build --release -p cua-sdk --example rollout_bench --example channel_bench (Rust 1.97.1)"
    },
    "host": {
      "name": "Mac Studio",
      "model": "Mac14,13 (Mac Studio)",
      "chip": "Apple M2 Max",
      "cpus": 12,
      "memory_gb": 96,
      "os": "macOS 26.6.2 (25G83)",
      "where": "local"
    },
    "environment": {
      "kind": "gvisor",
      "image": "ghcr.io/trycua/linux:24.04-slim",
      "shape": "1 vCPU, 1 GiB per Space, --headless",
      "settings": "CUA_POOL_AUTO=off; built-in Linux runtime VM at its default size on this Mac, 4 vCPU / 32 GiB (CUA_RUNTIME_LINUX_CPUS=12 / MEMORY_GIB=64 were in the daemon's environment but the runtime VM was already running and kept its size, per the daemon log)",
      "load_avg_before": [
        1.39,
        4.28,
        5.29
      ],
      "other_vms": 1,
      "network": "n/a (local)"
    },
    "method": "Driver on the host: `rollout_bench create --n 256 --conc 64 --keep` (Rust SDK, built from the tag) against this release's daemon. Each sample = one batch: 256 headless gVisor Spaces (1 vCPU / 1 GiB) created with at most 64 create calls in flight; time from the first create call until the last Space answered its first exec (`sh -c true`). After each batch all 256 were deleted and the host settled 10 s. n=10 batches, after one excluded warm-up create. Per-Space create-to-first-exec percentiles of each batch are in samples.csv.",
    "reproduce": "# On an Apple silicon Mac (macOS 26), with Rust (rustup) and git:\ncurl -fLO https://github.com/trycua/cua/releases/download/cua-spaces-v0.15.0/cua-spaces-0.15.0-darwin-universal.dmg\nhdiutil attach -nobrowse -mountpoint /tmp/cua-dmg cua-spaces-0.15.0-darwin-universal.dmg\nmkdir -p ~/bench && ditto \"/tmp/cua-dmg/Cua Spaces.app\" ~/bench/\"Cua Spaces.app\" && hdiutil detach /tmp/cua-dmg\ngit clone --depth 1 --branch cua-spaces-v0.15.0 https://github.com/trycua/cua ~/bench/cua\n(cd ~/bench/cua/libs/cua && cargo build --locked --release -p cua-sdk --example rollout_bench --example channel_bench)\nexport PATH=\"$HOME/bench/Cua Spaces.app/Contents/MacOS:$PATH\" CUA_HOME=~/bench/home DO_NOT_TRACK=1 CUA_TELEMETRY=0\nRB=~/bench/cua/libs/cua/target/release/examples/rollout_bench\nCUA_POOL_AUTO=off cua daemon start --foreground &\nulimit -n 65536\n$RB create --prefix w- --n 1 --kind container --runtime gvisor --cpus 1 --memory-mb 1024 --headless   # warm-up\nfor r in $(seq 1 10); do $RB create --prefix u$r- --n 256 --conc 64 --cpus 1 --memory-mb 1024 --kind container --runtime gvisor --headless --keep; $RB delete --prefix u$r- --conc 32; sleep 10; done   # summary line: wall_ms",
    "caveats": [
      "All 256 run inside one built-in Linux runtime VM (gVisor sandboxes), at its default size (4 vCPU / 32 GiB here).",
      "Headless shape (only cua-spacesd)."
    ],
    "sources": [],
    "status": "measured"
  },
  "earlier": []
}
