true-async-server
Emerging · PHP · tuned configuration
Native PHP HTTP server built on the TrueAsync coroutine engine. Each connection runs as a cooperative coroutine; one OS thread per CPU listens via SO_REUSEPORT inside a single PHP process. PDO connection pool, OPcache JIT, no Caddy / FrankenPHP / FastCGI in front.
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 | 2 of 97 | 880 |
| HTTP/2 | 1 of 29 | 332 |
Every result
Alpha Round, 32 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 | 2,154,955 | 237us | 571us | 6712.0% | 182MiB |
| Connection | Baseline | 4,096 | 2,260,254 | 1.81ms | 2.53ms | 5871.2% | 220MiB |
| Connection | Pipelined | 512 | 8,993,883 | 910us | 2.02ms | 6514.3% | 150MiB |
| Connection | Pipelined | 4,096 | 2,295,056 | 28.56ms | 48.20ms | 5949.5% | 245MiB |
| Connection | Short-lived | 512 | 1,610,019 | 306us | 1.50ms | 6107.4% | 157MiB |
| Connection | Short-lived | 4,096 | 1,798,930 | 2.26ms | 33.70ms | 6213.4% | 165MiB |
| Workload | JSON | 4,096 | 983,908 | 3.80ms | 9.61ms | 6485.4% | 264MiB |
| Workload | JSON Comp | 512 | 445,036 | 1.14ms | 5.28ms | 5914.4% | 175MiB |
| Workload | JSON Comp | 4,096 | 458,109 | 8.95ms | 20.20ms | 6227.8% | 254MiB |
| Workload | JSON Comp | 16,384 | 440,487 | 36.93ms | 66.30ms | 6499.7% | 487MiB |
| Workload | JSON TLS | 4,096 | 782,380 | 5.35ms | - | 6236.9% | 627MiB |
| Workload | Upload | 32 | 2,583 | 12.36ms | 57.20ms | 1855.3% | 302MiB |
| Workload | Upload | 256 | 3,022 | 80.13ms | 336.60ms | 3622.3% | 520MiB |
| Workload | Static | 1,024 | 610,098 | 8.50ms | - | 3161.7% | 175MiB |
| Workload | Static | 4,096 | 624,750 | 35.36ms | - | 3262.3% | 252MiB |
| Workload | Static | 6,800 | 610,348 | 59.62ms | - | 3199.6% | 306MiB |
| Workload | Static TLS | 1,024 | 683,087 | 1.66ms | 25.05ms | 5984.9% | 378MiB |
| Workload | Static TLS | 4,096 | 523,669 | 7.80ms | 73.97ms | 5903.4% | 818MiB |
| Workload | Static TLS | 6,800 | 479,908 | 14.16ms | 168.90ms | 5795.2% | 1.2GiB |
| Database | Async DB | 1,024 | 249,894 | 3.56ms | 12.50ms | 4917.3% | 248MiB |
| Database | Fortunes | 1,024 | 88,584 | 7.68ms | 28.80ms | 6331.0% | 224MiB |
| Multi-endpoint | API-4 | 256 | 56,308 | 3.62ms | 41.20ms | 394.0% | 42MiB |
| Multi-endpoint | API-16 | 1,024 | 152,800 | 5.70ms | 99.80ms | 1574.7% | 77MiB |
| HTTP/2 | Baseline | 256 | 4,969,431 | 5.40ms | - | 7904.6% | 225MiB |
| HTTP/2 | Baseline | 1,024 | 3,288,741 | 27.37ms | - | 7207.5% | 505MiB |
| HTTP/2 | Static | 256 | 1,035,118 | 8.26ms | - | 6423.3% | 559MiB |
| HTTP/2 | Static | 1,024 | 830,382 | 37.40ms | - | 6562.3% | 2.3GiB |
| HTTP/2 | Baseline (h2c) | 256 | 6,038,026 | 4.37ms | - | 7082.3% | 244MiB |
| HTTP/2 | Baseline (h2c) | 1,024 | 3,991,541 | 23.14ms | - | 7607.8% | 528MiB |
| HTTP/2 | Baseline (h2c) | 4,096 | 3,753,829 | 100.43ms | - | 7497.4% | 1.5GiB |
| HTTP/2 | JSON (h2c) | 1,024 | 1,232,194 | 25.75ms | - | 7366.1% | 319MiB |
| HTTP/2 | JSON (h2c) | 4,096 | 1,217,112 | 102.11ms | - | 7258.8% | 781MiB |
How the benchmark is run · The machine · Add or fix an entry