Files
Builds on Common Methodology
Times the job-host round trip for BoxRouter to list a directory and to read and write a 4 KiB incompressible file in a sandbox.
Coding agents and build tools constantly inspect directory trees and read or write small source files through a sandbox provider's file API.
The Files tab measures the per-call round-trip time of those three primitive operations through BoxRouter: listing a directory of 200 empty files (List), writing an incompressible 4096-byte file (Write 4 KiB), and reading that 4096-byte file back with SHA-256 verification (Read 4 KiB).
All three benchmarks execute sequentially inside one shared sandbox per trial (List, then Write 4 KiB, then Read 4 KiB), repeating each operation 100 times back to back.
View the Procedure View Files Results Download Raw Data
Metrics
Read 4 KiB
Read 4 KiB is the round-trip duration of a single files.read call reading the 4 KiB incompressible file /workspace/prim/file-4kib.bin, pooled across 100 sequential reads per trial and 40 trials (4,000 reads total).
List
List is the round-trip duration of a single files.list call on /workspace/prim/list returning the sorted names of 200 empty files, pooled across 100 calls per trial and 40 trials (4,000 calls total).
Write 4 KiB
Write 4 KiB is the round-trip duration of a single files.write call transferring a 4 KiB incompressible payload to /workspace/prim/file-4kib.bin, pooled across 100 sequential writes per trial and 40 trials (4,000 writes total).
List (2 vCPU / 8 GiB)
List (2 vCPU / 8 GiB) is the same measurement as List, taken in a 2 vCPU / 8 GiB sandbox.
Write 4 KiB (2 vCPU / 8 GiB)
Write 4 KiB (2 vCPU / 8 GiB) is the same measurement as Write 4 KiB, taken in a 2 vCPU / 8 GiB sandbox.
Read 4 KiB (2 vCPU / 8 GiB)
Read 4 KiB (2 vCPU / 8 GiB) is the same measurement as Read 4 KiB, taken in a 2 vCPU / 8 GiB sandbox.
| Timed Part | Starts | Ends |
| Read file | Each read request is dispatched. | The complete file returns to the job host. |
| List directory | Each list request is dispatched. | The directory names return to the job host. |
| Write file | Each write request is dispatched. | The write call returns after staging and copying the bytes into place. |
M_{\mathrm{op},\,i} = \operatorname{median}_{r} \left( t_{\mathrm{op},\,i,\,r} \right)
-
M_{\mathrm{op},\,i} Summary value of operation op in trial i, the nearest-rank median across its repetitions. -
t_{\mathrm{op},\,i,\,r} Job-host duration of repetition r of operation op in trial i.
Measurement
Each trial uses one shared sandbox created from BoxRouter's pinned standard image across all three file benchmarks.
- Create sandbox, run readiness check and create 200 empty files.
- Call
files.list 100 times back to back and verify the names (List). - Generate and verify the 4 KiB payload.
- Call
files.write 100 times (Write 4 KiB). - Read 4 KiB Call
files.read 100 times and verify each payload (Read 4 KiB). Timed - Destroy sandbox.
The 200 empty files in /workspace/prim/list are named f000 through f199, and the 4096-byte payload is generated in memory from SHAKE256 (boxrouter-primitives/file-4kib/v1) and verified by SHA-256 digest on every read.
Scope Limits and Caveats
- Calls to
files.list publish job-host total time only, because files.list wraps no user command with guest clock reads. - Each
files.write call includes BoxRouter's staging step (writing the bytes to a private path and copying them into place in the same call), and writes two through 100 overwrite the existing file. - Because of the staging step a write takes several provider requests and is slower than a read, which is the path a BoxRouter user takes.
- Because the file was just written in the same sandbox, the sandbox's page cache may serve the reads, so they measure the file API's per-call overhead rather than disk speed.
- The sandbox has already passed the readiness check and the directory setup command, so the calls measure warm steady-state file operations, not cold first-touch ones.
- On some providers BoxRouter does extra work per file call (on Vercel it re-checks its process tool on every listing), and that work is part of the provider's path and of the timed call.
Failures and Exclusions
Outcome classifications, top-up rounds, and outlier rules follow Common Methodology; the first failed step ends the trial without in-trial retries.
A trial succeeds only when the directory setup completes, all 100 files.list calls return the expected sorted set of 200 filenames, all 100 files.write calls complete without error, all 100 files.read calls return a buffer whose SHA-256 matches the pinned SHA-256, and the shared trial sandbox is confirmed destroyed.
| Step | Time Limit |
| Create | 5 min |
| Write file | 60 s |
| List directory | 60 s |
| Write file | 60 s |
| Read file | 60 s |
| Destroy | 5 min |
Statistics
- Based On
-
Common Methodology
Per-unit percentiles, bootstrap confidence intervals, and tail rules follow Common Methodology.
For each of List, Write 4 KiB and Read 4 KiB, all 4,000 individual call durations across the 40 trials are pooled for the headline median, mean, and p95, with bootstrap confidence intervals resampled by whole trial. A provider is ranked once it has at least 20 successful trials.
Sandbox and Trials
- Image Digest
-
sha256
- Image Version
-
0.3.11
- Image Registry Page
-
View on the Registry
- Pull the Image
-
docker pull ghcr.io/boxrouter/standard-image@sha256:89d4c97048dbdfb8b6d85ad91833962ff38d1c334a5f47e6de80a9762310191b Copy
- Lifetime
-
30 min
- Idle Connection Time
-
5.0 min
From Common Methodology
- Idle Connection Exceptions
-
| Provider | Rule | File Transfer Idle Time |
| Daytona | The SDK has no idle-timeout setting. Its command channel keeps its connection open, and its file-transfer channel reconnects after 5 s of idle time. | 5.0 s |
From Common Methodology
- Network Path Attempts
-
10
From Common Methodology
- Mode
-
Single
- Sandboxes per Trial
-
1
- Parallel Trials
-
10
- Concurrent Sandboxes
-
1
At a Glance
- Metrics
-
- Read 4 KiB
- List
- Write 4 KiB
- List (2 vCPU / 8 GiB)
- Write 4 KiB (2 vCPU / 8 GiB)
- Read 4 KiB (2 vCPU / 8 GiB)
- Quantity
-
Time
- Unit
-
Milliseconds (ms)
- Direction
-
Lower Is Better
- Statistic
-
Median
- Clock
-
Job-host clock
From Common Methodology
- Machine Size
-
2 vCPU / 4 GiB
- Trials
-
40
- Variants
-
- Read 4 KiB
- List 200 empty files
- Write a 4 KiB payload