frankenphp-trueasync
Emerging · PHP · engine: frankenphp · tuned configuration
FrankenPHP with TrueAsync coroutine engine. Each HTTP request runs as a cooperative coroutine with PDO connection pooling, async I/O, and OPcache JIT. Built on Caddy with native HTTP/2 and HTTP/3 support.
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 | 67 of 97 | 163 |
| HTTP/2 | 24 of 29 | 24 |
| HTTP/3 | 8 of 12 | 33 |
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 | 158,851 | 3.22ms | 15.10ms | 2821.4% | 553.7MiB |
| Connection | Baseline | 4,096 | 202,696 | 20.16ms | 158.10ms | 3503.0% | 704.2MiB |
| Connection | Pipelined | 512 | 206,393 | 39.69ms | 79.90ms | 2759.4% | 474.8MiB |
| Connection | Pipelined | 4,096 | 330,989 | 191.69ms | 743.10ms | 3476.7% | 805.9MiB |
| Connection | Short-lived | 512 | 150,425 | 3.40ms | 17.10ms | 2900.4% | 480.4MiB |
| Connection | Short-lived | 4,096 | 184,591 | 22.06ms | 134.90ms | 3279.4% | 695.3MiB |
| Workload | JSON | 4,096 | 188,026 | 21.59ms | 209.60ms | 4122.4% | 778.9MiB |
| Workload | JSON Comp | 512 | 119,733 | 4.27ms | 15.30ms | 5148.9% | 1.1GiB |
| Workload | JSON Comp | 4,096 | 122,239 | 33.38ms | 72.40ms | 5163.3% | 1.9GiB |
| Workload | JSON Comp | 16,384 | 123,063 | 129.25ms | 259.50ms | 5024.5% | 3.8GiB |
| Workload | Upload | 32 | 610 | 52.59ms | 155.60ms | 1977.7% | 3.5GiB |
| Workload | Upload | 256 | 735 | 156.20ms | 905.40ms | 2531.8% | 4.1GiB |
| Workload | Static | 1,024 | 120,684 | 14.52ms | 14.52ms | 3627.0% | 563.3MiB |
| Workload | Static | 4,096 | 172,802 | 51.15ms | 51.15ms | 4465.6% | 920.9MiB |
| Workload | Static | 6,800 | 194,135 | 66.16ms | 66.16ms | 5027.5% | 1.1GiB |
| Database | Async DB | 1,024 | 5,424 | 182.67ms | 1.32s | 195.0% | 554.5MiB |
| Multi-endpoint | API-4 | 256 | 27,467 | 9.24ms | 33.60ms | 333.1% | 110.5MiB |
| Multi-endpoint | API-16 | 1,024 | 31,351 | 32.52ms | 265.80ms | 550.6% | 271.2MiB |
| HTTP/2 | Baseline | 256 | 259,133 | 94.67ms | 94.67ms | 4989.7% | 998.1MiB |
| HTTP/2 | Baseline | 1,024 | 247,550 | 309.94ms | 309.94ms | 5057.9% | 3.8GiB |
| HTTP/2 | Static | 256 | 166,847 | 139.75ms | 139.75ms | 5193.4% | 1.8GiB |
| HTTP/2 | Static | 1,024 | 184,255 | 382.61ms | 382.61ms | 5140.8% | 5.1GiB |
| HTTP/3 | Baseline | 64 | 201,169 | 18.75ms | 84.40ms | 3348.0% | 626.1MiB |
| HTTP/3 | Static | 64 | 74,646 | 54.32ms | 208.00ms | 1926.0% | 1.4GiB |
How the benchmark is run · The machine · Add or fix an entry