19. Performance

August 3, 2026 · View on GitHub

Numbers from script/fs-bench.sh and a full npm install of cloudflare/sandbox-sdk (854 packages, 36,675 files), running examples/container on a Cloudflare Containers standard-2 instance (1 vCPU, 6 GiB memory, 12 GB disk). The computerd FUSE mount lives at /workspace; the comparison columns are an in-memory tmpfs at /tmp and the container's ext4 root disk at /var/tmp.

Ratios are computerd / baseline — lower is faster, values below 1.0 mean computerd beats the baseline.

fs-bench (REPS=3, WARMUP=1, randomized targets)

Scenariocomputerdtmpfstmpfs ratioext4 diskdisk ratio
tiny-file churn
create 1000 files560.6 ms83.2 ms6.7x303.2 ms1.85x
stat 1000 files1971.9 ms1324.2 ms1.49x2659.3 ms0.91x
rm 1000 files827.7 ms322.7 ms2.56x1281.8 ms0.66x
directory traversal
mkdir tree (10×10×10)1597.5 ms1585.7 ms1.01x3034.7 ms0.74x
find tree1813.6 ms1819.9 ms1.00x4404.2 ms0.72x
large file I/O
write 64 MiB230.6 ms47.3 ms4.87x16.8 ms16.93x
copy 64 MiB1037.2 ms37.4 ms27.75x39.8 ms40.46x
read 64 MiB437.5 ms22.6 ms19.33x25.6 ms39.72x
pure read 64 MiB263.1 ms8.3 ms31.54x8.5 ms30.26x
pure copy 64 MiB852.9 ms21.7 ms39.27x22.0 ms41.47x
overwrite 64 MiB272.6 ms8.3 ms32.91x8.5 ms43.35x
git
git init + commit 100 files459.2 ms40.3 ms9.56x635.4 ms0.72x
git clone (shallow, ~1MB)549.1 ms421.0 ms1.30x576.2 ms0.84x
npm
npm init + tiny install598.5 ms630.7 ms0.95x630.7 ms0.95x

Full cloudflare/sandbox-sdk npm install

TargetDuration
tmpfs (/tmp)34.3 s
computerd FUSE (/workspace)124.7 s
ext4 disk (/var/tmp)63.9 s

computerd is ~2x slower than the container's ext4 disk for the full npm install, and ~3.6x slower than tmpfs. The disk comparison is the more realistic baseline for general usage.

Where computerd is faster than the disk baseline

The in-memory inode store beats real disk on metadata-heavy work: stat, rm, mkdir tree, find tree, git init, git clone, npm init. Those eight scenarios cover most of the day-to-day cost of tools like git status, module resolution, and incremental builds.

Where computerd is slower

Large sequential file I/O. The computerd write path hashes each CHUNK_SIZE (512 KiB) chunk into a content-addressed blob store on every release; that's how the Durable Object can sync only the chunks that changed and deduplicate identical content. The cost lands on raw dd-style throughput numbers but rarely on real developer workloads, which is why npm init + tiny install matches the disk baseline despite pure read 64 MiB being 30x slower.

Reproducing

bash script/run-fs-bench.sh

or against a deployed computerd-container instance, upload script/fs-bench.sh and run it with MOUNT=/workspace BASE=/tmp.