symfony-spawn-franken
Emerging · PHP · engine: frankenphp · tuned configuration
Symfony with symfony-spawn bundle: coroutine-per-request isolation via TrueAsync PHP core, Doctrine DBAL connection pooling, and FrankenPHP.
Composite rank
Each profile of a family is worth 100 to the entry that leads it, and the composite is the sum over the family. The field is this entry's own league: engines and reverse proxies are scored apart from frameworks. How it works.
| Family | Rank | Composite |
|---|---|---|
| HTTP/1.1 | 72 of 97 | 157 |
| HTTP/2 | 27 of 29 | 8 |
| HTTP/3 | 9 of 12 | 28 |
Every result
Alpha Round, 24 runs. Requests per second is the best of three; latency, CPU and memory come from that run.
| Category | Profile | Conns | Req/sec | Avg | p99 | CPU | Memory |
|---|---|---|---|---|---|---|---|
| Connection | Baseline | 512 | 144,708 | 3.54ms | 10.40ms | 4707.6% | 787MiB |
| Connection | Baseline | 4,096 | 150,306 | 27.14ms | 48.30ms | 4891.8% | 1.4GiB |
| Connection | Pipelined | 512 | 184,486 | 44.40ms | 69.00ms | 5026.0% | 787MiB |
| Connection | Pipelined | 4,096 | 224,686 | 282.52ms | 429.40ms | 5885.3% | 1.8GiB |
| Connection | Short-lived | 512 | 134,923 | 3.79ms | 12.00ms | 4776.3% | 672MiB |
| Connection | Short-lived | 4,096 | 147,200 | 27.74ms | 49.30ms | 4876.8% | 1.5GiB |
| Workload | JSON | 4,096 | 134,310 | 30.28ms | 59.90ms | 5168.9% | 1.8GiB |
| Workload | JSON Comp | 512 | 91,877 | 5.57ms | 19.10ms | 5521.3% | 1.1GiB |
| Workload | JSON Comp | 4,096 | 95,685 | 42.61ms | 85.50ms | 5466.6% | 1.9GiB |
| Workload | JSON Comp | 16,384 | 94,939 | 167.93ms | 333.90ms | 5424.5% | 4.3GiB |
| Workload | Upload | 32 | 629 | 50.90ms | 150.70ms | 1962.1% | 18.6GiB |
| Workload | Upload | 256 | 1,616 | 72.02ms | 785.00ms | 1324.5% | 15.1GiB |
| Workload | Static | 1,024 | 129,756 | 12.48ms | 12.48ms | 4397.5% | 1.2GiB |
| Workload | Static | 4,096 | 134,054 | 41.64ms | 41.64ms | 5242.6% | 2.2GiB |
| Workload | Static | 6,800 | 133,200 | 50.98ms | 50.98ms | 4762.8% | 3.0GiB |
| Database | Async DB | 1,024 | 6,152 | 158.98ms | 1.39s | 243.8% | 737MiB |
| Multi-endpoint | API-4 | 256 | 23,409 | 10.84ms | 74.10ms | 369.5% | 246MiB |
| Multi-endpoint | API-16 | 1,024 | 36,417 | 20.01ms | 172.60ms | 1352.3% | 657MiB |
| HTTP/2 | Baseline | 256 | 28,243 | 229.68ms | 229.68ms | 5180.8% | 4.3GiB |
| HTTP/2 | Baseline | 1,024 | 97,817 | 465.99ms | 465.99ms | 4817.0% | 7.1GiB |
| HTTP/2 | Static | 256 | 63,518 | 64.13ms | 64.13ms | 5491.9% | 2.2GiB |
| HTTP/2 | Static | 1,024 | 52,582 | 246.82ms | 246.82ms | 4915.1% | 5.1GiB |
| HTTP/3 | Baseline | 64 | 164,063 | 23.12ms | 54.41ms | 5313.7% | 1.4GiB |
| HTTP/3 | Static | 64 | 64,730 | 62.71ms | 241.28ms | 2813.5% | 4.4GiB |
How the benchmark is run · The machine · Add or fix an entry