Research / Evidence

Performance,
with limits.

The useful question is not whether Gray wins one chart. It is how much work it delivers before latency, memory, or correctness stops being acceptable.

Every result here names its environment and boundary. These are controlled Grayworth qualifications, not official TechEmpower rankings.

01 / Operating envelope

Fast until the queue forms.

Gray holds corrected p99 below 4 ms through the 45k point. At 60k the queue becomes visible. At 75k the server is overloaded. The bend is the capacity boundary, not a victory graphic.

Gray Static / plaintext

Corrected p99 curve

log ms
Stable through 45k/sQueue forms at 60k/s85.76 ms p99 → 1.60 s at 75k/s
Gray corrected p99 latency by requested rate
Requested rateCorrected p99
8k/s3.13 ms
12k/s2.42 ms
20k/s2.25 ms
30k/s2.73 ms
45k/s3.81 ms
60k/s85.76 ms
75k/s1.60 s

AMD EPYC 9645 host · one pinned server CPU · 30 seconds per point · corrected-latency wrk2.

02 / External context

One controlled comparison.

This answers a narrow question: under one fixture and one CPU, which tested rate still met the delivery and tail-latency condition? It does not rank ecosystems, safety, maintainability, or production maturity.

Read the language decision guides
Identical fixture / pinned host

Highest tested rate that still qualified

req/s
Highest tested rate meeting the qualification threshold
RuntimeQualifying rate
PHP-FPM8k req/s
Node12k req/s
Go30k req/s
Gray60k req/s

AMD EPYC 9645 · digest-pinned Ubuntu image · one server CPU · 30 seconds per point. Threshold: ≥95% delivery and corrected p99 <100 ms. Not a general language ranking.

Operating envelope

Speed matters
when it holds.

03 / Qualification ledger

What has actually
been sustained.

1 hourPlaintext49,997.81/sp99 7.00 ms / RSS +0 KiB
1 hourNative JSON39,993.57/sp99 4.09 ms / RSS +0 KiB
30 secPostgreSQL continuation7,961.48/sp99 4.60 ms / 0 task workers
7 roundsNative loop25.918×cancellable W^X execution