Real-time latency benchmarks for git hosting providers.
Measured from Vercel Sandbox (us-east-1) across 7 providers, 3 repo sizes, 7 operations.
| # | Provider | n | P50 | P95 | Avg | StdDev | Min | Max |
|---|---|---|---|---|---|---|---|---|
| 1 | CodeStorage | 20 | 637ms | 901ms | 711ms | ±222ms | 519ms | 1,492ms |
| 2 | GitHub | 20 | 642ms | 857ms | 680ms | ±95ms | 566ms | 885ms |
| 3 | GitLab | 20 | 889ms | 1,140ms | 926ms | ±123ms | 751ms | 1,204ms |
| 4 | CF Artifacts | 20 | 956ms | 1,151ms | 996ms | ±116ms | 802ms | 1,207ms |
| 5 | Codeberg | 20 | 1,021ms | 1,155ms | 1,045ms | ±98ms | 921ms | 1,302ms |
| 6 | CodeCommit | 20 | 2,996ms | 3,104ms | 2,987ms | ±87ms | 2,810ms | 3,129ms |
| 7 | CC us-west-1 | 20 | 3,190ms | 3,647ms | 3,249ms | ±196ms | 3,091ms | 3,854ms |
How latency scales from small (2 files) to large (10K files)
All benchmarks are run from a Vercel Sandbox in us-east-1. Each operation is timed end-to-end including network, TLS, and git protocol negotiation over authenticated HTTPS.
Test Repos
Operations Tested
Clone and fetch benchmarks: 20 rounds. Push benchmarks: 15 rounds. Providers that return HTTP 429 are automatically disabled for remaining rounds (applies to Codeberg during clone benchmarks). Sandboxes that crash are automatically replaced and benchmarking resumes from the next round.