Quick wins for a faster PC:
Clear out junk files and repair common Windows errorsFree Scan →Scan for outdated or missing drivers - takes under a minuteDriver Scan →Repair Windows errors before they cause bigger problemsFix Now →In the one configuration Asif Naeem tested in Part 1 of PQC-Bench, the hybrid group X25519MLKEM768 and classical X25519 had the same mean and p95 handshake latency at the reported precision: 2 ms and 4 ms. The median p99 was 8 ms for the hybrid arm and 5 ms for X25519, but the individual hybrid trials ranged from 5 to 39 ms, so the tail difference is not a firm cost estimate. The measurements are fresh TLS 1.3 handshakes at 300 requests per second, run on AWS c7g.large spot instances in us-east-1. The results describe that setup and nothing broader.
What was tested
The Part 1 report, published 2026-09-28, compares two key-exchange groups in TLS 1.3 handshakes. Every connection was a fresh handshake, with session resumption disabled, so each request paid the full key-exchange cost.
As an Amazon Associate I earn from qualifying purchases.
- Server and load generator: two AWS EC2 c7g.large spot instances in the same subnet and availability zone in us-east-1. Same-zone placement was chosen so cross-zone network latency would not swamp the signal. The c7g family is built on Graviton3 processors.
- Server software: nginx built from source against OpenSSL 3.5.0, on Ubuntu 24.04.
- Load generator: Gatling 3.15.1 on JDK 21, using a BoringSSL-based client.
- Cipher suites offered: TLS_AES_256_GCM_SHA384 and TLS_CHACHA20_POLY1305_SHA256.
- Certificate: a self-signed ECDSA P-256 server certificate. The Gatling client did not advertise ML-DSA-65 in its supported signature algorithms, so an ML-DSA certificate could not be used in this setup.
- Response: a 3-byte body.
- Load and trials: 300 requests per second, three five-minute trials per arm, with the first 30 seconds of each trial excluded as warmup.
Because the certificate was ECDSA P-256 in both arms, the comparison isolates the key exchange. It does not measure the cost of a post-quantum certificate chain, which is a separate and potentially larger question for real deployments.
Free tools Windows power users keep installed
One-click scans. No signup required.
Results at 300 requests per second
The table shows the median of the three trials for each arm, as reported by the author. Gatling reports integer milliseconds, so the "displayed difference" column is the only difference the report can show.
#1 Best Overall
- Massive 8-Bay Storage for Demanding Workloads: Engineered for high-capacity needs, this chassis supports eight 3.5-inch HDDs, providing terabytes of space for NAS, media servers, and data archives
- Seamless Compatibility with Standard ATX Motherboards: Built to accommodate standard ATX motherboards, offering flexibility and cost savings for your server build without the need for proprietary components
- High-Speed Data Transfers with Front Panel USB-C: Features a front-panel USB 3.2 Gen Type-C port for ultra-fast data transfers, simplifying backups and connectivity with modern peripherals
- Efficient Cooling System with PWM Fans: Equipped with three 80mm PWM fans that provide optimal airflow and temperature control to keep your server components running reliably
- Professional 2U Rackmount Design: Compact 2U form factor fits standard server racks and supports 2U/CRPS power supply units for efficient space utilization in data centers and server rooms
| Metric | X25519 | X25519MLKEM768 | Reading at displayed precision |
|---|---|---|---|
| Mean | 2 ms | 2 ms | No difference shown |
| p50 | 1 ms | 2 ms | 1 ms displayed difference |
| p95 | 4 ms | 4 ms | No difference shown |
| p99 | 5 ms | 8 ms | 3 ms displayed difference |
| Maximum | 14 ms | 41 ms | Hybrid arm includes a high outlier |
Why the p99 result is not a stable number
The median p99 hides a wide spread. The three individual p99 values were:
- X25519: 4 ms, 5 ms, 5 ms
- X25519MLKEM768: 5 ms, 8 ms, 39 ms
The 39 ms hybrid trial is the source of the 41 ms maximum. The author suggests it may have come from a CPU-steal event on the spot instance or a JVM garbage-collection pause, but did not isolate the cause. Treat that explanation as a hypothesis. With only three trials per arm, one slow run moves the median and the tail estimate substantially.
Why the 1000 requests per second run was discarded
The author first attempted the same test at 1000 requests per second. In both arms, mean latency rose above one second and p99 reached roughly six seconds. The cause was CPU saturation on the two-vCPU load generator: requests queued on the client, and the queueing dominated the numbers. Those runs say nothing about the cryptography, and neither algorithm can be called faster from them.
Do these 3 things before closing this tab:
1Fix the driver behind crashes, sound loss and screen glitches2Clear out junk files and repair common Windows errors3Scan for outdated or missing drivers - takes under a minuteThe practical lesson is to check the load generator’s own headroom before interpreting server-side latency. Watch client CPU utilization during the run, and confirm the offered rate is actually achieved. If the client is saturated, a latency change may come from the client rather than the server.
Rank #2
- Advanced KVM Solution: Sipeed NanoKVM Pro features second screen capability and LED strip integration for enhanced system monitoring
- 4K HDMI Output: Supports high-resolution display up to 4K for enhanced visual experience and crystal-clear remote viewing
- Remote Server Control: Enables IP-KVM access for homelab and NAS management from anywhere with internet connectivity
- PoE Powered: Simplifies setup with power-over-Ethernet support for NanoKVM Pro, eliminating the need for separate power adapters
- WiFi6 and GbE Connectivity: Ensures fast and stable network performance with dual connectivity options for flexible deployment
What the Part 1 numbers can and cannot support
- Can support: at 300 requests per second, on this platform and workload, the hybrid group did not produce a visible change in mean or p95 handshake latency.
- Cannot support: sub-millisecond comparisons. Integer-millisecond reporting can hide differences smaller than 1 ms.
- Cannot support: tail-latency conclusions. Three trials per arm is too few to separate a real p99 change from a single noisy run.
- Cannot support: behavior at other request rates, under concurrency, with resumed sessions, with larger responses, or on x86 or AMD instances. None of these was tested in Part 1.
- Cannot support: any claim about post-quantum certificate chains, because the certificate was ECDSA P-256.
The report names concurrency, session resumption, CPU architecture and payload size as open questions. Those are the places where a broader claim would need new measurements.
The October 5 follow-up
A separate follow-up published 2026-10-05 changed several conditions: it used pooled connections and session resumption. In that test, p95 was 4 ms for the classical fresh arm and 5 ms for the post-quantum fresh arm, and 1 ms in both resumed arms. The follow-up also reports identical displayed p95 values across resumed payload tests up to 100 KB. These are later experiments with different conditions from Part 1. The author notes the same integer-millisecond and three-trial limits apply, so they support only coarse conclusions. The main takeaway is that resumed sessions removed the displayed p95 difference in that test; it does not extend Part 1’s fresh-handshake results.
Independent reader supportYour contribution helps us test, update, and keep practical guides available for everyone.Reproducing the run and what it costs
The report includes the project repository, Terraform configuration, AWS setup and the Gatling scenario script. The author estimates the full run takes roughly 50 minutes and costs under $0.30, based on experience. A separate line in the report puts the cost below one dollar. Both figures are estimates. Spot prices change, and actual cost depends on region, instance availability and how long the instances run, so check current pricing before you start. The headline’s $0.04/hour rate should be read as the author’s figure at the time of testing.
When you reproduce the run, keep the same checks the author applied:
Rank #3
- Advanced KVM Solution: Sipeed NanoKVM Pro features second screen capability and LED strip integration for enhanced system monitoring
- 4K HDMI Output: Supports high-resolution display up to 4K for enhanced visual experience and crystal-clear remote viewing
- Remote Server Control: Enables IP-KVM access for homelab and NAS management from anywhere with internet connectivity
- PoE Powered: Simplifies setup with power-over-Ethernet support for NanoKVM Pro, eliminating the need for separate power adapters
- WiFi6 and GbE Connectivity: Ensures fast and stable network performance with dual connectivity options for flexible deployment
- Launch the server and client in the same subnet and availability zone.
- Confirm the server offers the same two cipher suites and that each arm negotiates the intended group.
- Run a low-rate sanity check first and watch client CPU before raising the rate.
- Discard the 30-second warmup, then keep the full trial set rather than only the best trial.
- Record the spread of individual trials, not only the median.
Variables to hold constant in any comparison
Part 1 holds most variables fixed across its two arms, but it explores only one value of each. Any follow-up comparison should record and align the following:
- Handshake state: fresh or resumed
- Connection reuse and concurrency
- Offered request rate
- CPU architecture and instance family
- TLS library and server software versions
- Certificate type and chain size
- Response payload size
- Latency percentile reported
- Number of trials per arm
- Measurement resolution
All Part 1 figures are the author’s own measurements. This article has not independently reproduced them or reviewed the repository.
The author’s own advice sums up the method: "benchmark your load generator before you trust its numbers."
Quick Recap
“
Product prices and availability are accurate as of the date/time indicated and are subject to change. Any price and availability information displayed on Amazon at the time of purchase will apply.

