Cua

How long does a command round trip into a Space take?

A command round trip (sh -c) into a running QEMU Linux VM Space took 0.878 ms (p50, n = 300) from the same Mac, over loopback, on a Mac Studio (Apple M2 Max, 96 GB), measured 2026-10-25 on Cua Spaces 0.15.0.

Measured Build app 0.15.0, cua 0.9.0, cua-spacesd 0.8.0n = 300Raw data (CSV)

Results

Round trip of one sh -c command, serial. Lower is better.

p50
0.878 ms
p95
0.961 ms
p99
1.022 ms
Slowest
1.06 ms
Values shown in the chart
MeasureValue
p500.878 ms
p950.961 ms
p991.022 ms
Slowest1.06 ms
Samples300

Method

Driver on the host: bench/channel/run.sh from tag cua-spaces-v0.15.0 with channel_bench (Rust SDK example built from the tag). It creates one Linux VM Space on this Mac (cua spaces create linux --on local --kind vm --cpus 2 --memory-mb 2048, QEMU on HVF), measures it through the SDK and deletes it. Route: local 127.0.0.1 (gRPC to the Space's cua-spacesd). Exec: 300 serial round trips each of a no-op RPC, true run directly, and sh -c (5 warm-up calls excluded). Files: one file per transfer of 1 MiB (n=20), 4 MiB (20), 16 MiB (10), 100 MiB (10), 512 MiB (5), upload then download, MiB/s = size / p50 time; files of 2 MiB and more use the VM's bulk lane (a shared disk, SHA-256 checked). channel_bench writes percentiles per metric, not per sample, so samples.csv holds one row per metric.

Caveats

  • Same machine (loopback): a client on another machine adds its network round trip.
  • samples.csv has one row per metric (percentiles), not one per sample.

Environment and build

MachineMac Studio, Mac14,13 (Mac Studio)
ChipApple M2 Max, 12 cores
Memory96 GB
OSmacOS 26.6.2 (25G83)
Wherelocal
Other vms1
Networkn/a (local)
Kindvm
Imagelinux (catalog alias, full Linux VM disk)
Shape2 vCPU, 2 GiB
BuildCua 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
App0.15.0
cua0.9.0
cua_spacesd0.8.0

Reproduce

# On an Apple silicon Mac (macOS 26), with Rust (rustup) and git:
curl -fLO https://github.com/trycua/cua/releases/download/cua-spaces-v0.15.0/cua-spaces-0.15.0-darwin-universal.dmg
hdiutil attach -nobrowse -mountpoint /tmp/cua-dmg cua-spaces-0.15.0-darwin-universal.dmg
mkdir -p ~/bench && ditto "/tmp/cua-dmg/Cua Spaces.app" ~/bench/"Cua Spaces.app" && hdiutil detach /tmp/cua-dmg
git clone --depth 1 --branch cua-spaces-v0.15.0 https://github.com/trycua/cua ~/bench/cua
(cd ~/bench/cua/libs/cua && cargo build --locked --release -p cua-sdk --example rollout_bench --example channel_bench)
export PATH="$HOME/bench/Cua Spaces.app/Contents/MacOS:$PATH" CUA_HOME=~/bench/home DO_NOT_TRACK=1 CUA_TELEMETRY=0
RB=~/bench/cua/libs/cua/target/release/examples/rollout_bench
cua daemon start --foreground &
cd ~/bench/cua/libs/cua
CUA=cua BENCH=target/release/examples/channel_bench FILES=1:20,4:20,16:10,100:10,512:5 OUT=results \
  bash bench/channel/run.sh bench/channel/baselines/macos-m2max-qemu.json

Cua commands use the published Cua Spaces 0.15.0 release and the public trycua/cua repository at the tag cua-spaces-v0.15.0. Downloads: samples (CSV), result (JSON), this page as Markdown.

Questions

Does this include the network?

No. The client ran on the same Mac and reached the Space over loopback. A client elsewhere adds its own network round trip.

Can I run this myself?

Yes. The commands under Reproduce use the published Cua Spaces 0.15.0 release and the public trycua/cua repository at the tag cua-spaces-v0.15.0. A `cua bench run` command that wraps them is coming; it isn't in a release yet.

Checked 2026-10-25. Sources: the samples and result files above, measured by Cua. All benchmarks.

Open in your browser to continue

Sign-in often fails inside this app's built-in browser. Open this page in Safari or Chrome to continue.