Recorded run · 11 October 2026

Apple M4 Pro, macOS 27.0.1, 8 vCPU / 8 GB each

Velox 1.7.1 against Docker Desktop 4.94.0 and OrbStack 2.2.3, in one campaign: the same Mac, the same night, one engine resident at a time, each at a verified 8 vCPU / 8 GB, all three emptied first and driven by the same docker CLI and compose plugin. Six rounds ran the engines in all six orders, so each went first, middle and last twice. Medians, n=6 (n=3 for builds and compose, n=1 for the memory phases). A verdict needs at least 15% and non-overlapping spreads; anything closer is on par. Rows marked † were re-measured the same morning in the same rotation, after Velox adopted a 3 s stop default and the disk-reclaim test was fixed.

Metric Velox Docker Desktop OrbStack vs Docker Desktop vs OrbStack
Install footprint 327 MB 2,198 MB 696 MB 6.7x smaller 2.1x smaller
Startup, quit to API-ready 0.59 s 1.79 s 1.35 s 3.1x faster 2.3x faster
Idle RAM, whole engine 667 MB 2,306 MB 767 MB 3.5x less on par
Idle RAM, after resource saver 133 MB 989 MB 753 MB 7.4x less 5.7x less
Idle CPU, idle state (after saver) 0.00 % 0.51 % 0.15 % 0% vs 0.51% 0% vs 0.15%
RAM with 21 containers running 1,543 MB 3,098 MB 1,563 MB 2.0x less on par
RAM 3 min after removing them 1,566 MB 3,052 MB 1,149 MB 1.9x less 1.4x behind
Container launch 0.09 s 0.13 s 0.21 s 1.4x faster 2.3x faster
Parallel launch, 20 containers 0.76 s 0.98 s 1.66 s 1.3x faster 2.2x faster
Network, container to host 97.3 Gbit/s 24.4 Gbit/s 58.4 Gbit/s 4.0x faster 1.7x faster
Network, container to container 165 Gbit/s 92.2 Gbit/s 91.4 Gbit/s 1.8x faster 1.8x faster
Published port, 1 stream 47.9 Gbit/s 12.4 Gbit/s 49.3 Gbit/s 3.9x faster on par
Published port, 4 streams 20.2 Gbit/s 25.6 Gbit/s 30.3 Gbit/s 1.3x behind 1.5x behind
docker cp out, 1 GiB 715 MB/s 220 MB/s 694 MB/s 3.2x faster on par
docker cp in, 1 GiB 932 MB/s 148 MB/s 546 MB/s 6.3x faster 1.7x faster
VirtioFS bind-mount read, cached 2,753 MB/s 2,327 MB/s 2,048 MB/s 1.2x faster 1.3x faster
Small-file extract, 4,000 files 2.06 s 2.35 s 1.15 s on par 1.8x behind
Named-volume write 2,303 MB/s 1,771 MB/s 1,050 MB/s 1.3x faster 2.2x faster
Image extraction, docker load 5.87 s 6.38 s 5.65 s on par on par
Incremental build 1.35 s 1.48 s 2.06 s on par 1.5x faster
Postgres pgbench TPS 15,750 14,693 6,550 on par 2.4x more
compose down, SIGTERM-ignoring † 3.31 s 3.50 s 10.6 s on par 3.2x faster
Disk still held 150 s after deleting ~5 GB † 0 MB 1,120 MB 0 MB all returned on par

All three passed every functional probe: bind mounts, host.docker.internal, TCP, UDP and IPv6 publishing, per-container host IPs, privileged ports, BuildKit with attestations, and linux/amd64, linux/arm/v7 and linux/386 emulation. Velox and OrbStack add direct <name>.local container access. Velox returns memory by stopping the idle engine after 5 minutes, because macOS 27's memory balloon frees nothing, so the 3-minute post-teardown row catches it before that. The 4-stream published-port result swings between 20 and 60 Gbit/s on macOS 27 for every Velox build tested, 1.7.0 included. The Mac-to-VM direction of Apple's NAT measures about 14 Gbit/s with no Velox code in the path; on macOS 26.6 it was a steady 60. compose down measures the stop grace period for containers that ignore SIGTERM: Velox and Docker Desktop ship 3 s, OrbStack keeps Docker's 10 s. Disk reclaim is a single sample per engine, taken 150 s after a restart.

Read the full report, with every raw value and its caveats, or inspect the runnable harness in docs/bench.