Skip to content

libuvcpp: move the pin to 1.7.2-dev, and answer the JSON profiles with the framework's standard serializer - #1568

Merged
MDA2AV merged 19 commits into
MDA2AV:mainfrom
Antruly:libuvcpp-1.7.2
Oct 17, 2026
Merged

MDA2AV merged 19 commits into
MDA2AV:mainfrom
Antruly:libuvcpp-1.7.2

Conversation

@Antruly

@Antruly Antruly commented Oct 15, 2026 •

Copy link
Copy Markdown
Contributor

Description

Two changes, both about what this entry costs per request.

The pin moves from 6eede33 to 8150720 (1.7.2-dev), which is the v1.7.0
tag plus one documentation commit and two that change code:

  • ebeaa20 — the path normalisation collapsed into one function. The
    routing table, the streaming table and the WebSocket table used to each spell
    out web_collapse_slashes(web_url_decode(...)) and rely on three comments to
    stay in agreement. It is now one public function with a fast path for a path
    that is already normal, so "these three tables see the same path" holds by
    construction. Criterion: 22,459.6 → 22,032.4 instructions per request
    (-1.90%, callgrind, h1 shape).
  • 8150720 — the result-set allocation account. The async-db response
    materialises 20 rows × 9 cells, and 204.78 of its mallocs per response
    were not holding data — they were std::vector growing 1-2-4-8 (103.00 +
    6.00 per request, 56% of all mallocs by callgraph edge). Both sizes are
    reported by PQntuples/PQnfields, so the vectors now reserve and the count
    is 204.78 → 102.77. Criterion: the malloc counter, same entry binary,
    only the .so swapped, three runs per arm, reproducible.

The entry change is 9964faf, and it is a correction rather than an
optimisation. On review (MDA2AV, 2026-10-15) this entry was answering /json,
/public/json/:count and /async-db with uvcpp_json_writer. That writer is
an alternative JSON serializer; implementation-rules/frameworks/tuned.md
lists "Alternative JSON serializers" among the things Tuned allows, while
this entry declares mode: standard, where
test-profiles/h1/json-compressed/implementation.md asks for "the framework
standard JSON serialization" and standard.md:55 rules out a hand-rolled
alternative kept for benchmark performance. So all three now build an
nlohmann::json DOM per request out of the live data and hand it to
resp.json(), which is the framework's own uvcpp_json_dump(). Reading goes
the same way — uvcpp_json_parse and the uvcpp_json_get_* accessors instead
of nlohmann's parse/value()/[], the accessors the library publishes
precisely so a handler cannot throw out of a libuv callback — and the
hand-written payload literals ({}, {"error":"unauthorized"}, the empty
/async-db result set) are gone with them. The flattened-dataset pre-read, the
flattened fast path and the writer's self-check are all deleted; there is one
serializer and one path now.

Cost, stated plainly: at this pin /json/50?m=6 was 63.2 us of server CPU
per request through the writer against 176.0 us through the DOM, and the
writer also skipped the per-item DOM copy. json-comp, json-tls and
json-h2c will therefore read lower than the 2026-10-15 run. That is given up
deliberately — the rules decide this, not the measurement.

Correctness of the swap: both binaries run side by side on the same machine
over 49 URLs (every serialization route, both dataset routes, five /async-db
shapes, /api/*), every body compared after canonicalisation — 0
mismatches
, /json/50?m=6 at 8397 bytes on both. The only raw difference is
top-level key order, which is now the sorted order nlohmann's default
std::map object produces and is the order this entry's reference path and
/api/items have always used. scripts/validate.sh parses every JSON body and
diffs fields; no check compares a body byte for byte. The 401, 503,
malformed-body and non-object-body paths were exercised separately and are
unchanged.

What this is not

Neither library change is offered as a predicted board movement. -1.90% of
the h1 profiles' user-mode time is about 0.35% of their end-to-end time, which
is smaller than the spread between two readings of the same profile; and
async-db is Reference-only, so it contributes nothing to a score and shows up
only in its own cpu_per_req_us (user plus system, where the change is on the
user side). Both are accounted for as "the counter certainly went down". The
Dockerfile says the same where it records the pin history — and now also says
that the writer paragraphs below that point are the record of why the pin moved
when it did, not a description of what this entry does.

Guards on the library side: the /async-db response bodies are byte-identical
across the arms, the Postgres suite's output is byte-identical across the arms,
and the full suite is 127/127 on the Linux tree.

`build_async_db_json` is still there and still answers whenever the writer
declines; what changes is which one is on the hot path. The handler now walks
the rows through `uvcpp_json_writer` -- the streaming constructor `/json` has
used since af2807d -- reading the nine columns by position rather than by name,
and copying the `tags` cell's JSONB literal through instead of parsing it into a
DOM and dumping it back out. Same items, same DOM, same work per request; what
changes is that a tree and a throwaway `dump()` string stop existing.

Criterion, measured on this entry before writing this commit:

  server user instructions per request, callgrind, this entry under
  `taskset -c 0-8 valgrind --tool=callgrind`, 2000 requests at `-c 32 -m 1`
  against `/async-db?min=10&max=50&limit=20`, an idle leg subtracted:

    dom        1,563,529,631 Ir  =  781,765 Ir/req
    writer       687,329,150 Ir  =  343,665 Ir/req     -56.04%

  At ~0.335 ns per instruction that is 262 us -> 115 us of user CPU per request.
  The two largest single items that leave the profile: `parse_tags` + `dump()`
  for the tags column (13.8% of the profile's client CPU) and the 200 column
  name lookups per response (12.4%); `dump_escaped` alone was 10.12% of the DOM
  path's self cost. Both numbers were measured before this commit, on the same
  rig.

  Determinism rather than a sample: the line
  `libuvcpp: /async-db answers from the writer path` is in the server log of the
  measured leg, which means the writer reproduced the reference bytes on the
  first non-empty response and answered every request after it -- 2000/2000 2xx,
  0 failed. Re-asking the same query returns bytes identical to the first
  response, and the committed file was re-run end to end after the last edit.

Why the bytes do not move, independent of the proof: the writer may answer only
after `async_db_json` has compared its output against `build_async_db_json`'s on
a live response, and a single difference keeps the entry on the DOM path for the
life of the process -- the same shape af2807d put in front of `/json`. The `tags`
walker is the one place where the argument is stronger than "the responses we
sampled agree": it accepts only a flat array of strings whose bytes are all
printable ASCII other than `"` and `\`, which is exactly the set both serializers
copy through unchanged (RFC 8259 escapes only `"`, `\` and the bytes below
0x20), and it declines everything else -- a number, a nested value, an escape, a
byte >= 0x80 -- to the DOM path, where `parse_tags`' "a value that will not parse
becomes []" rule lives. An empty result set proves nothing and does not set the
flag, so the proof runs on the first response that actually carries a row.

The pin does not move: `uvcpp_db_row::operator[](size_t)` and
`uvcpp_json_writer` are both in 6eede33 (v1.7.0), so this is an entry-side change
only and needs no library release.

Scope: the async-db profile is Reference-only, so this is that profile's
`cpu_per_req_us` column and not the composite. The measured half is the user-mode
half; the platform's number also carries system time, which this change does not
touch.
`8150720` is the library's `master` after the `v1.7.0` release plus two
commits. Both were measured locally against the previous pin, and the criteria
are deterministic counters rather than board readings:

  * `ebeaa20` -- `-1.90%` user-mode instructions per request on the h1 shape
    (22,459.6 -> 22,032.4 Ir, callgrind). The path normalisation collapsed into
    one function with a fast path for the already-normal form, so the routing
    table, the streaming table and the WebSocket table cannot disagree about
    what path they are looking at. `-1.90%` of the h1 profiles' user-mode time
    is about `0.35%` of their end-to-end time, which is smaller than the spread
    between two platform readings of the same profile.
  * `8150720` -- `204.78 -> 102.77` `malloc`s per response on the async-db
    shape. The result-set vectors now reserve, which `PQntuples`/`PQnfields`
    let them do exactly, so the 1-2-4-8 growth of 20 rows x 9 cells is gone.
    `async-db` is Reference-only: this one lands in its `cpu_per_req_us` (user
    plus system, and the change is on the user side) and nowhere else.

So neither is offered as a predicted board movement -- both are accounted for
as "the counter certainly went down". The Dockerfile comment says so where it
records the pin history, along with what the distance from `v1.7.0` to this pin
actually is: one documentation commit plus these two.

The rest of the range from `6eede33` (the previous pin) to here is the `v1.7.0`
release work -- build system, packaging, release docs -- which is already
justified in the block above and changes no code on this entry's paths.

Two things in the entry README were true when the pin was `v1.6.1` and are not
true now, so they are corrected rather than left:

  * "libuvcpp 1.6.x" is `1.7.x`.
  * the reason given for building the library from source was that the release
    package has both remote database backends off. At `v1.6.1` that was right --
    all six legs of the release workflow passed
    `-DUVCPP_ENABLE_DB_MYSQL=OFF -DUVCPP_ENABLE_DB_PGSQL=OFF`. At `1.7.0` all
    six pass `=ON` with `-DUVCPP_DB_RUNTIME_LOAD=ON`, which is why the same
    `ldd` allow-list still passes: the backends are there, loaded at run time.
    The reason now is that the pin is a development revision and a release
    package exists only for a tag.

The `/async-db` section also described `tags` as re-parsed into a DOM and dumped
back out. The entry no longer does that (`9257623`, the commit below): it walks
the array literal and copies the strings through, declining anything it cannot
reproduce byte for byte and falling back to the DOM path for that response. The
section now says that, and says that the writer path is proved against the
reference bytes on the first non-empty response before it is allowed to answer.
@Antruly

Antruly commented Oct 15, 2026

Copy link
Copy Markdown
Contributor Author

/benchmark -f libuvcpp --save

Two changes in this run, both recorded in the Dockerfile's pin block:

  • the pin moves from 6eede33 to 8150720 (1.7.2-dev) — one path-normalisation
    change (-1.90% user-mode instructions per request on the h1 shape) and the
    result-set reservation (204.78 -> 102.77 mallocs per response on the
    async-db shape);
  • /async-db answers from uvcpp_json_writer instead of building an nlohmann
    DOM per row and dumping it.

Being straight about what to expect: neither library change is offered as a
predicted board movement. -1.90% of the h1 profiles' user-mode time is about
0.35% of their end-to-end time, which is inside the spread between two
readings of the same profile. And async-db is Reference-only — its gain can
only show up in that profile's own cpu_per_req_us, which is user plus system
time where this change is on the user side. Both are accounted for as "the
counter certainly went down"; this run is what says whether either is visible
from outside.

@github-actions

Copy link
Copy Markdown
Contributor

👋 Benchmark request received. A collaborator will review and approve the run.

@github-actions

Copy link
Copy Markdown
Contributor

Benchmark Results

Framework: libuvcpp | Test: all tests

Test Conn RPS Rate CPU/req p99 p99.9 CPU Mem Δ RPS Δ Mem
baseline 4096 1,789,003 — — — — 6320.1% 139MiB +9.1% ~0%
pipelined 4096 7,491,589 — — — — 6391.6% 149MiB +10.4% +0.7%
limited-conn 4096 1,414,762 — — — — 6336.9% 90MiB +8.0% -10.9%
json-comp 4096 335,926 — — — — 6263.0% 107MiB +3.2% -10.8%
json-comp 16384 330,411 — — — — 6504.6% 141MiB +2.9% -13.0%
json-tls 4096 724,360 — — — — 6332.4% 395MiB +7.7% -0.3%
8gbit 512 49,344 0.9869 65.81us 148.0us 4694.0us 299.4% 207MiB +0.3% +61.7%
static-tls 1024 190,070 — — — — 2930.6% 277MiB ~0% -0.4%
async-db 1024 98,855 — — — — 2687.4% 172MiB +17.8% -10.4%
baseline-h2 256 5,552,266 — — — — 6202.3% 96MiB +23.4% -13.5%
baseline-h2 1024 5,247,351 — — — — 6218.8% 174MiB +11.9% -2.2%
static-h2 256 232,078 — — — — 2212.8% 191MiB -2.8% +1.1%
static-h2 1024 252,927 — — — — 2584.0% 805MiB +4.4% +1.5%
baseline-h2c 256 5,752,882 — — — — 6049.5% 83MiB +18.6% +1.2%
baseline-h2c 1024 5,465,988 — — — — 6426.9% 182MiB +17.1% +11.0%
baseline-h2c 4096 5,268,627 — — — — 6152.4% 790MiB +12.0% -2.6%
json-h2c 1024 1,653,574 — — — — 6364.1% 303MiB +10.5% +1.7%
json-h2c 4096 1,580,650 — — — — 6241.2% 976MiB +6.3% -0.7%
baseline-h3 64 1,422,023 — — — — 4117.6% 195MiB +21.8% -18.1%
static-h3 64 122,803 — — — — 3139.0% 788MiB +7.5% +66.9%
gateway-64 512 77,207 — — — — 3824.5% 2.7GiB +1.7% +8.0%
gateway-64 1024 68,878 — — — — 3628.5% 4.9GiB +0.3% +2.1%
gateway-h3 64 84,432 — — — — 3445.3% 371MiB +0.3% -4.9%
gateway-h3 256 62,335 — — — — 2751.7% 1.4GiB -0.3% -6.7%
production-stack 256 54,088 — — — — 3238.0% 928MiB +0.8% -3.5%
production-stack 1024 48,440 — — — — 3437.3% 2.8GiB +4.7% ~0%
unary-grpc 256 3,818,427 — — — — 6042.7% 146MiB +12.6% +0.7%
unary-grpc 1024 3,760,124 — — — — 6440.4% 413MiB +15.2% +0.2%
unary-grpc-tls 256 3,720,594 — — — — 6087.4% 163MiB +13.2% -1.2%
unary-grpc-tls 1024 3,511,060 — — — — 5982.0% 598MiB +13.5% ~0%
echo-ws 512 2,833,406 — — — — 6616.9% 75MiB +3.0% -5.1%
echo-ws 4096 2,884,971 — — — — 6272.5% 134MiB +1.4% +3.1%
echo-ws 16384 2,577,600 — — — — 6140.4% 336MiB +2.4% -0.6%
echo-ws-pipeline 512 31,580,057 — — — — 6664.2% 78MiB +5.2% -1.3%
echo-ws-pipeline 4096 31,035,676 — — — — 6378.8% 134MiB +7.2% -2.9%
echo-ws-pipeline 16384 27,866,425 — — — — 6179.7% 350MiB +10.7% -2.0%
echo-ws-limited 512 1,600,650 — — — — 5818.9% 89MiB +3.2% -1.1%
echo-ws-limited 4096 1,767,053 — — — — 6142.6% 93MiB -0.6% -4.1%
latency-1m 1024 998,040 0.9980 39.73us 312.0us 1319.0us 4324.7% 81MiB ~0% ~0%
latency-10k 1024 9,981 0.9981 37.69us 121.0us 1007.0us 36.3% 78MiB ~0% +1.3%
latency-500k-8cpu 1024 264,277 0.5286 ⚠️ 30.19us 9973760.0us 10342400.0us 779.4% 32MiB +7.9% ~0%
async 32000 1,568,496 — — — — 6409.0% 488MiB +3.6% -0.4%
Full log
  "duration_s": 20.003,
  "requests": 199680,
  "bytes": 31150080,
  "achieved_rate": 9982.73,
  "target_rate": 10000,
  "target_rate_end": 10000,
  "rate_ratio": 0.9983,
  "bytes_per_sec": 1557305.37,
  "error_rate": 0.000000,
  "max_schedule_lag_us": 0,
  "latency_us": {
    "min": 40, "mean": 81.4, "stdev": 422.3, "max": 34815,
    "p50": 67, "p75": 76, "p90": 97, "p99": 123, "p99_9": 208, "p99_99": 23688
  },
  "status_codes": { "1xx": 0, "2xx": 199680, "3xx": 0, "4xx": 0, "5xx": 0 },
  "errors": { "connect": 0, "read": 0, "write": 0, "timeout": 0, "deadline": 0, "non_2xx_3xx": 0 },
  "latency_histogram": "HISTFAAAAj94nC1QXUgUYRSde+bb2dlZZ0d3XXXR2Mw18QfNLDIKVIqWqLAfoSAsKEIkJAoCKaTFDC2yCKWHCo3YlgoVKZECn2LBWHrJQKIHEREJXxLxLYnOrM3lu9/9O+fcb0r6hkKahkFt69P/35JNhvq1prWtQityis4l5IeMoBcpLCGj93o3AgsVyfapIZlPysdhmeiXlZ70jS+X0ieX4wPxxRM/L2x2jdz62524lrn8uW3uyNr+xfr3tRs16ZqJqneVr8rno2PF04UjoWVnzp70J/0Za963aaZ8j8wZc8K7bkwZm8akN2kt2A/ykvmrwYFgIjiWuxLoDaz7f1lPrWnrpfXMmjET3q/GktrQX+ireIOHWJK0pGRS+mjD0n36eFtz7HDt7saqxl3NB3cU7IntzC8JBLcXxUoKinIsE4ahrFzTyIUyDVNTmlKAh0cDQnSlbuDQ7cUTwR/BRQzqeK4wq2PUg++CTowLHgt+67gn2IZZwXW04yauogHfBF20K9DVfVFhtOKDoAM2eSMopkJcFcNLc3AKxyijoQxR6OThkBeVCHMQcSajAg8reWjK7uMu50dYRegj3ErDUU5rqEYLfSdwCBVcYB+RDmFlhNl8RAh3BXXEwEcqnZ0IHKUzPsCihjOo5+0jrpCzNiVLaQ7xIZSTr4W128T52bddrno2yBF2c+UuFnb/mNt2CK7Da5A7ih6W7vD51dyqnchCnGfbxllqaeTz8cUNWbVPwtEogy5QsYL1DiIq2WvCW+AfG+x/Pg=="
}
[info] CPU 37.7% | Mem 78MiB
[info] run 1 wins on score

=== Best: 9981 req/s (CPU: 36.3%, Mem: 78MiB) ===
[info] exact CPU: 7.52 core-seconds | 37.693 us/req
=== Fixed-rate: cpu/req 37.69us | p99 121.0us | p99.9 1007.0us | rate_ratio 0.9981 ===
[info] saved results/latency-10k/1024/libuvcpp.json
httparena-bench-libuvcpp
httparena-bench-libuvcpp

==============================================
=== libuvcpp / latency-500k-8cpu / 1024c (tool=zrk) ===
==============================================
[info] waiting for server...
[info] server ready

[run 1/3]
{
  "zrk_version": "2.3.0",
  "target": { "url": "http://localhost:8080/baseline11?a=1&b=2", "method": "GET" },
  "config": { "connections": 1024, "launched": 1024, "duration_s": 20.000, "closed": false, "target_rate": 500000, "timeout_ms": 2000, "deadline_ms": 0, "deadline_abort": false, "record_timeouts": true },
  "duration_s": 20.006,
  "requests": 5284085,
  "bytes": 824317260,
  "achieved_rate": 264121.71,
  "target_rate": 500000,
  "target_rate_end": 500000,
  "rate_ratio": 0.5282,
  "bytes_per_sec": 41202986.39,
  "error_rate": 0.000000,
  "max_schedule_lag_us": 10055210,
  "latency_us": {
    "min": 51, "mean": 4685317.7, "stdev": 2719782.9, "max": 10059775,
    "p50": 4659200, "p75": 6989824, "p90": 8425472, "p99": 9678848, "p99_9": 9957376, "p99_99": 10022912
  },
  "status_codes": { "1xx": 0, "2xx": 5284085, "3xx": 0, "4xx": 0, "5xx": 0 },
  "errors": { "connect": 0, "read": 0, "write": 0, "timeout": 0, "deadline": 0, "non_2xx_3xx": 0 },
  "latency_histogram": "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"
}
[info] CPU 779.2% | Mem 33MiB

[run 2/3]
{
  "zrk_version": "2.3.0",
  "target": { "url": "http://localhost:8080/baseline11?a=1&b=2", "method": "GET" },
  "config": { "connections": 1024, "launched": 1024, "duration_s": 20.000, "closed": false, "target_rate": 500000, "timeout_ms": 2000, "deadline_ms": 0, "deadline_abort": false, "record_timeouts": true },
  "duration_s": 20.008,
  "requests": 5276543,
  "bytes": 823140708,
  "achieved_rate": 263726.47,
  "target_rate": 500000,
  "target_rate_end": 500000,
  "rate_ratio": 0.5275,
  "bytes_per_sec": 41141328.95,
  "error_rate": 0.000000,
  "max_schedule_lag_us": 10372083,
  "latency_us": {
    "min": 50, "mean": 4676520.1, "stdev": 2736193.9, "max": 10379263,
    "p50": 4638720, "p75": 6952960, "p90": 8378368, "p99": 9981952, "p99_9": 10260480, "p99_99": 10334208
  },
  "status_codes": { "1xx": 0, "2xx": 5276543, "3xx": 0, "4xx": 0, "5xx": 0 },
  "errors": { "connect": 0, "read": 0, "write": 0, "timeout": 0, "deadline": 0, "non_2xx_3xx": 0 },
  "latency_histogram": "HISTFAAAKqJ4nD2aD0ib+ZrvTfrWJplMRjM5ORlPNsZMTtbNuF5X3F7X63okKyE3iFdERKSU4dzDsCyHYRgOw1DKICJeEZHghhBCCCGIhBBCCEEkiIiIiIiIiJRSpEgppZQipRQppdzP8+huY978/jx/vs/zfJ/nhWG88//5dVNTtL3p5t+d21+Tbv7z/zX96erm4P+a75kNs9ncZDTxNQxzs2FusdmaWwzDZrZbeFps5maLxcZ5kxlRo6nZgoKBvJyw1Ie5GW3zXVZ3DPMdObvHoflL813Wd/QpH726I/JYuGfgXE6/4HvP+L08Reau2WpuVbU7ZquBDSufO+bf3dr50vw1z39Co8P8h/8SU6k75t9jCynAWc3/C42vOL+jKKxIfoP9v+P2G1Zfm//Z/L9x84VaEKmvze1ofIMsDzMX6Nzl5x6/9+TsC7NxFzmR+IozQWH+xmjnUmB9raHcwYEEqMF+ZTZ/bYARtd8ZcveFIVbwdo/P18a/cfRHDgTfd/y2aiyCpVUTZUXxa+Mrdl8jIef3jFbB93v1KF8Q8/yKK/NXZPB3SP2D5uiuXn+B/XvmfwSHJk8CkkC/xJ35f2psf088X5rNHRrq35v/04TxfzJE+P9o3HfM35r/ld92tf07DQpAFMP41izBNhlfqO6XAGjVAhKn+voXQWVVcF8KAs31l3xatV73tFb31HaTAmhSGpo1uwJUY7ypsHGXXFiNO4bkhXRqbCyaxfU3t8yRvFGpf9E0Soh3tY6iIkZF6Etc3NOKidHfq+QdJcedm7JBTAXRZCjqW+aIWauiEhaIwT+YNcXKwD/c3HxH/u4B4e+UXDesuGsIkyVPv1NOtBqanCbYec9Qy4jcaW668WFINE23PUOnqQFz+40Nvv9g1srccu2/2u+moaT1bvqrSSnbfNNX2JKwrBrnTSBNEuINP276/iaUOzdJAZcGLb83sFT2jiGJE0f3btIkohYBY4iLG593lcRN0tdf39KNvdr9g6T+Fp4IKymabgundb7xwkKyaNYJgELzV4LWKnn4Nz2xin2J4c5/B/w/xIihtJCKf3PbRIaw9wvNstjWJDJ0fidKVrOlSevYdNuNN5PFirJVbd5T7Ts3EXxl/J0GJKxv0gJKtN9qA925YWiTEueOJkZSdMfQqWa+OdCBJ4SXT7NOx6abvNxcK+3vNKv4PwvFvlDqKQt1cphvpukXavuGocZN6QTfXT2+KWizBoWIZOAO81xpLY2jeAy1S4yGCMi457pZ8OprQCa8/DWbDTFkiH8Z9c3NemM037woODCaLPreaDarBbmUt0CzZKG5ydZkbjbbDMNiyIKHhfDEoLxIUGhuVv5a9C2CMQ4sOEHbJgCa1W6zPGTdhB2bRMe7iFdSs6XZ0oQwW4u4dSj9jeY7GLKJSYJpVmVDUVjslmZkbJZmdWW2NNsdzQq6yWazWNQqV/ZmIQW+2AHTIolotpsNOze4tVjw2CxGMSLmDZu4kLcmL0isoiNvzeZmuwUZi9lisYstMIKXyBxmW7M4FZ+cyT85x6DF3OSw2RVqk9khIaFpwRIvYhsGmsWKpQWTzTbCIAGGOMcAthSGFkhgWYRd8sImjibxbHMQDR44pAj2Zjsxi2CLXaIBCNfywECThRSxsYscMHnx22wOcBuO2/BtNqMF1SbBbZglDpvFYbE4DIFBBpAUE3pok5ixg5JNssTWDmlY2Cx2AoQd9uYmO6Akbvlnt9nt5mZHs8OOhrnZZsd9kxgiYlw0290IuVpaLBanw+5wOt0up9PlYuVyNbvdLrYtLfzxcLo8HHrkssXd4nS7nTZfi8vrbLE7bMBzee0OT0uby253ux0tzjZ3i8Xe4nDZvW6Px9XstNg8Dty0OdvsLofbbmvBg9Pl5sBpd3scLXZvm8vd5rZjTtw6LU4bG6/bjrbD4TZcHo+npcXtcDg9Ng+/CNrEgt9lt3Fjc+HT7QGUA/NOt7PF0+n0WgItFrfb5naC0uNy2xwWTLgcbfhwuPz2FqfH7mhz+bwuh9/hctvbHIRk8zv9mHG3uFrsTpvfhbk2t8fp9DjsXo/DYwErS4+rzev0uO0E72bvtqAQaHGJqp/wHB6HzXB629wkynA5uHTaWlr8Ho/NhtUWEukk/pYWlwcgDmezgLd7MdVC5G57s4M02xyEwy8pR5QVBXK3OVwWVWlBmOxSrTa73dYmibRbJL3ONpLR0uJosdlFzQ47yQ2uWlz8tTjs+BRtIFKrloCNcrm9kjGnOLJbPM42vjZ7AMhum9PhFpzUoAXkVMbudTocXicklix6DI5B6FGiNHldTrvfbnPYPDa7i2u/gxADDpvfYXGB3g0JLC0uh/DLLAQQbggSSGBzEQEsc/ooMtXHl8tORl0eGENk6GGzxUtoTofR4rE77W3wkOKS1RZCtTmdNq8NzhleeGqDTkBzwLw2wpadUNZFemGmEwzUxeayuSzUM9gC58Sp5ACqO+zkW2qBdchut3npGo8PAhOADYoSIpkmX0LEgLvN7qEatJirxUk7QRY/OXN4UObjQdzwNFMFEm6DiHYb1BE4QCbjLnuzy4W/NodbamHAWUiHcUiNE6dBoomWqvtcMAVRn91N/h0BD2VzumEWX3LFNLM5IAzhBQPELr1Aq5BEIpJuoRUI2ttiw6xFOWgJ+9yhvoA3HPJ1hTvbgoFgKBDyBVw+ny/QGQz2toXDfp+7x+Pt6g6FAt777pDXF3AEfP5Q2Bf093T1+cNBb6Cv1+/uCzt6A56QNxwIuQKd4WBvZ2co1B3oDLhDAX/QF+gJ9AR72rrd4bZQuCvU2dMVdAX9vfd9gyGXLxjq9YZ7vL5QsCsQ7Az4Q15P731PmF1v0BMKBu/7fXgPtPV2+/yBPndbqLsn4O1hjQ9nb3dbT2cAPZ870O0JePp6Bry9nb5AMOj1+rydncFQMIzRrs5uN9G0gTDobQv4+3qDQV8nLnvbett8vf4up59Y+4J4J4SwM+zl0xYKhnzhnrDX193m6/S4/cDv8Qe6u7xt3WFfr8fnDAY6vX1uP2F093i9wftdfl+bN0iCfBKXp83XFfL7u3q6uuzeLn/Q4cOHP+LzBroDQb+nJ9QW8ofa2gKdni5fV1cg5PUHQm2d4rUv0ALw+75uH6B7QqFwqC3g9bf4CdTv9VImP/kPeHyBgKszQKIHuomwy0cYIX+bt5uMh3rczm5fZ7e/rTsY4tAT9IZCQaefFHvuezs9nt5+r/d+t+z9XtIJZuTDvi7sd+GsK+wNkPtgF+UgqmCv39fV6esM97SRVirlC3WTok50/WGP/37YEw54peI4IfNBVzjUFeZDVrs6vQGPN+jrCYeCbl9PyBPy+IPhni6vR0z3BDuDfn8b0hTc33cfNFQl5O91E08g1EUSuoLuIEXpDME7ijbo7/KiHaRWbtILpO5Of0u4m8KGA51d3hCLHp/XG+odcLtDof6ezq4g2sQS6g2H+oTX7rYAfPP7qE2f2xns6Q53dwZ8+Ojr6hpsg59UMuh3QYVwgKbo62zrc/lg2VCwu5MOCIboiGCIPAe6goN90MrX7Q93UiEaYiDk7/L5PH1dvk5/IBz2+oPulq7uzj5CDnX2BbpCIRdWfMHhQCDsagt2k8BgX8jj6enq7iHBfn8vEYSCgTDFgH0oBvsw3+2H7T4pU5A0dHIGS8LOrkAnxQn0ebvosx5fX9gT6u4O9QfDbTSdx9vd2U1dvGQ41HPf29XV1Rn0tXVLU/jp4J7e0fjY4PjMwGh/ZGx8qn/64fjgdDwyFB8beTA9HJ2aHJqMRkYGJkaGp6OT0R9mBqMzken44Eh0anR4IvKgJx4fi30fGx0fGYiNTcamvp8cvh+LjU72DcTi309NzYzHR4bj4/HRwYn7k4Px8QeDE5HY8MjEz6OjkenJ8cjw+GhfZCI+1T8SH5iKjw5Pfv/gYWx0YCgan4xHJiYm+3EyHI1PTMUnh0bHRgZHJkdnpscGRsfuT01FhkZHYzOj05F4dDQyNhwfGovHJkfGx6YnRyPxgfEfpnpHxnv6JqbHHgIgEos96B8aH44/HJsenY4P3Z8KT01NDfXHx8fHpyaiw6Ox+NTo2MRQdCQ+MjE12h8dnYlMDM9MjkTjY/Hvh+MjvZMs4oPjg3/589D4w1hkaGIoMhUZ/XO0f3hsLBaZfIDaZCTy4H5sYDw2PREfnIz1TY2OPJiKAXJ8LDrWPzrU/2AiGh+JRqfj08jMRCKjsaHYSGx8ZOjPBDge6Rl5QDpHpodjqH0/MNQ/OhabiEyOxqNjUzPR+MPhnjGy3j8RjY1MT04OfH8/NjYxGRmfGZkZikxODs8MjIwODY2MRif+PBSfiQMn+nBgbGooOjQxMgLch5OTQw8GxyYmIuMRfAMhGhmP98SmpqcmxianKMt0f3QchIMjRDc4E/nlL8NTU9FoJDoIhqH4+PDMVHwgPhwZnvrzeGx8cCoyMTUwFo1GH0Tj8WgkMv0gPjX2Q8/waKRzOhKbikQnx3/qH/7L/fHJyFQsHp8c6yNkWDIMBcbGhmai0e/jD+MjY+ND09H7o6Oj38d6xkamIiPfj/fHIvGJsYmR0XhsZjIyQlnvk8PYVCxG4icnpmLDgyNjkVEsDv8wGf1+dHqqf6I3OjExAmmGY7GxeH8sNgHZpv98P/LjYDTyl0h09H50ODYTHZoZm4pPTY1F+0b6HgxHB2bi4w+jE/3D42Pxqe/Hxmao3kD/8DT8GhqHX/cfDP/48GFsbHCkfyI+Og5PoqOjk4NAGRkZm+r/PhYZicd/GBke7Yc6/z4BwydGHkSHx6dGIvH+8aF4LDZEpv4jOjJCnZCMEeYAPcHFALQZGBgfH5p6ODP6F0oZG4yNDo8/iI4MD0yOxR78MNj778ODg4Mz8fjU+Hg82h950EeqR3+Kjo3GpocfDjzoGeiP3Y/QbBMjU7GZf48O/TA8GJmaGJiOTQyNTA6PxQeGx+je+IOB8eHpmdjM8Mjo2EA8Pj45PvSX4cjEWHxsYDg2MpQ2LZjWTTk+GdOqKWlKm/KmZVOCfcq0yMlPNX7WTWt6mGK1YCqwnjdtmpZMc6YVbpdMJVOWmyUkxECW0zK/j9cQnjP9VkavoTfzrFbRn2NXNj0SkxmEa/hMY0jMZRGqcS1nj+Y4fJzCfJHTNZTLHCRxVMDyAtJpdgl2VcwusFs1zaI3j9Uip0v8Pl5CbRnFVdOjjGmb+3UOcgphic8Cl1nkJIQUnwSfNdPjIsZ+EtU0uww6WTTypl/WMbCIGUkS9hJgWOMrqZnjeB47q8iumX6eR26Z7xrKdU3nsgJKm36+wVnjK7hzGvuq6ReBnNL8iexvc2zTLJcAv8A3c5sdqZJES2w505ZJCig5XeRKiljBbAL9guk/pCgJRZPkUjTX2InoCmjFySwG1lRcoKZMUrEKt78mbl0Iog18/Don/vLsC3ojPqsYWeIurSxIaxmoecH0+K9ZLGc0n3X1/7cN3GtEoizJyKCSAZdU6aZqv0qexJ6w6/EiFZSwEvq9kRNtqRtgsnpUwHROw1nEgCTy8azWRLSzfJbI8orpl1Vs5vlklK0rmFlUssyp1hxFqwNLij/L86dVAGSVJQ1VWUaU2q9oGX6qcPebEHeBeCXQeTK0Ap6sEm8eD48kcRJtHSvz6EvZE1r+WZOAX9JqVtTub0kONyRzYiTH5rEsGihKwSlFnWgkqgVlyy8/5ahrRuHm9STFnWTxV2nbjOlRSWv6+IZWSygLAQSfpPynvyW0VSRzdaXvLLuc6deU6dHfJPkbbBY065K2ddOPcwCtaM5+XFRDBY0jqcp5xSF9+bdf5pSpq5hb1y4SN0Ukl0nUjz8tE3kN3XnltQyJlLJ7XjOdxEJCR82K6UcJS2ZIFnVp0byS99FjYXiekzXTnlZRBghDIqcsodMrysafS4rhp7zyVyov+fz1bwUtRMokLJ5DJCVKSX5+SSrn8nic0wGYMP1SUI7OmR7VTEKHx9IbSZ0Vv5GopGmf459TBPTrovJXaCVR15RWaZV8LINhBXuzGnBG2zDD6seEtsuq5i9j+uW3RwnFtEBcUovfZDbMCrwVE0EXCazMPovVlOnxshZ9wSQzak6bOKeUWsT5X0u3Vm/6ex6Xj6SQN5Nn53ZG/JZXoj/+a5n7vNZKOrCoMH/8bREOyIz5rSjBLimpU1oZmVeP1pVsPy/p3BAynWC0oECS7OSZ0dm6ruNsXlslpYNqmVaT8fm3vOnxbyXTr2kthMzXsspICyXU/GMZTUlVmlUeCEHQyGBjwbQruX8kvNdgircTLydTRt4S88qlXySIMqBTCkoKqvV+dEPCpdvhKlBzStZlfRUuqfKj32Q2zOs4z9MpCX0F5Ew//5SR9pc35gZKS/pGWdUZvqDvzKyOYLIn3basb8mqSYbGGqtZ019z2q3LOoIETUXfvDeB1sxL5ry5YZ4375vr5hVz0VwxL+ozYc6ZT81J8yYSn0wNbnPmA/OqftbNT9BImgvmDXMNrZS5hMwedjbQrrI+5FZOd9Cum7N88ujlWO9hfdG8xi5j3mKfMu/y/WRKmc95ltCpcLqOfoV9GmtP0ZhDp4aNOlp72BRb2+Yyvlew0kBiAc20edZ8gl4VZFkQlsEjnjbwUCOiChbWsdVQz6sa+xqrMjhl99F0yt0c0g2+m9hJaGSbaG9jPW++Zl1CfhWNgkaYxEIV72XkD7AgOVxDT3J1AZ5r0xoRzOJFcplHJ61RL2LxFP03plVu9rCxo8jmkdkhupucJczPkf9sWudZA3sZrUX2m8RUQf6AfCxxI9nImd+b6uiucbaq2CXDNSQ/gqGARB5PSX6T6M0il8JijXVJcYvtonkZqQ1OCophHRtlJGrmt6aM1ibDukDNPmOzyN0SUtua8SS12GMnlaoikURG6lkl7hUs5YhNJEv8prnfRjeBbFIjPdWafjSJhaJ6Fd05jS2L/LrWdZ27JM/Pph09yWFhUeuZ4HwXFHlkS+ivoLlFNj6ZlpDaYSeZ3USrpDWV7wGV2CZrFaIu6SenDMkqL7Ka7wQyBWwW2a3gsYS3NJ+PpiPyt0rfpG/Z/QQEz0xlclAHaRrpVfTzoFhXSeGJ9FuS012tbc0sOU2hf4jnZXYS0wdwVUA8q5E2iC8N7i3Oq1hYRLuAVh39BKsGWkV2b0xiI6vcynBeNAtTr7WDdrTuNe2obZW+ppoVsC+iU2af1qpVqPy1aYtMbSnDs1hKapZ3YXiO3RHnwtEVZY7kR/BmYUjhv/uhym9Va1TRiTCrFSmbhcMbyqi0TplNZHc042nN8zYZqGlWGuhk1UPBLLXJgbmmSLI6o3aUGWvK0jL2JOYVfB7yTGo/VJQnO+gucV7WCBJoi15FebCA/g5n64plmaoVOE1xsqpoD5SnEmeBuxUkNrVWOXKT1mwKo2ucJJWVknHhxRYeM8jK3YLOgjq6RZ1pc2CRKLNI1zTCWfZrys8kma9xuqYTNY+VPWxXdE7mmQLCjhynZe3Cffg3pzaEDSc6BwVBSSfMjs4qYY1U8L3pDKkiJ1nl+ToYC8RW5LOFXknj2dBpWtJsyjStKec3kVzRLq/jM8VvAxQykQ70fZHXuHLI7yjrVshbDnwfTVLXI51LgqCo7D/QLs1iW3wJW7fwK1lqwKKMTkF5g6xrfj6apOM3NL/StUsqJzGsa/8sa/Wl8yW2kuZG8lcA06z5TPtGfEkMCc2rdM+cziDxvaETcBFp4cYn0zFy8q4Qu2tqq0icYqGkUWaUU8XbTkoT3ZVJmJnR2S8cTmk/LCmHnmFlWXm4opOlgNckmXiGpY/02Bo4VnSu1TSybVZLyoWq9kBe+zIHgn1qtaPvszOdKoea9wxSJ0SfI3Py5pH5vKV5yCty4dMGKD6bhJOCUapcV47LFFvUbnttbBgNvk+MF0aV1QGrA2PHqBnPjV1j0zjiN89d0dg2LowTI8v+uVHhZs94xtkOuqfGOTp54yP6h8Y+Z8+NLSPHvo7EGbrvkFnjduFuntUhlg/QzhtXrLeRusTKCf6f8txCu47UNh5qxmduDo208YrTNWw/5btnrINr9m4WmRd8G2Bex8exkWH/mvWFUeB89m4dm2fIH2N1GztnavMJnywyl0aZkwK2X6BTNBJ3G+wu8HiBXB6E7/B8TDwvsXNqlJA8RX+bm312z4liC0QF8H4mJxXycI7kK2PeeM95jt0zvO4gV8fWOrpvOcsT5S6rKl7WjA+a1U3ut3lK/k4538Dy4t05PO9z1uBk05i7W8XXPvLP0E/yvMDntmb9AqQHxidsl/h9ykmVlVSkgEex2QDDOXnbJPoK9+esDohhH1tb2DoylsCyju6pRv0SbE+43cJfDe0PggDU+3zKivMMuXOie8XvUxC/ImKp/CG2ylg44XSV3xf4yRpvODtXZh2CaxHtF5qxBkildrPG/N1N9ddAJn13lpgPsbmBdgU0B+yL6Dw3Erp7itf32P3M7wkenxHvU+J/A84Gn1dYEe0NdPbxcYTkEl6PYd0ycRRhyja325yvcH6ON2FqASvCtdf4kIq8wa4gPQXZK/KzpZk7hj0FrK7Cwi20Mug8Bc05lcjxPUPykqcw+URjuFBfl5zs4T2vJ8LJF0aK5+zdtPZNnfMjtb+BrRNWUq9dzta1GhLbEattPrvUZEnRvCQi6c4z7Mr9Aad1rdAevxdkfpf87IDsAzEeagfWOUmD54RdhvUm+EX6SJHu40OmgdS0jtYa58f4rIA9qZ1dR/M5uTnCrnDiFV7qIDnH6hl3e9gp8buPRIkc55RHT3g+gRWX6AoTNpTLz0AlrL8yFvgeaNXekc13ZHhLGZRB4ynez7B2TcZek/2Xij1pLN8V28d8ZLZIP5+BXSQP0T5Deu7uLl4TSMqkE3xP4M6rOx9ZlZU9NTBI1T8TTR2tFSbVGSheKgqpluBaxdIWmC6I6hitBpJXfHewt6ddWObms/Quvna1s06Re0dcx0y/PeXVjmbyAO1rnYpv8b1K3k45P+emSh/vgvI12rugO0AqAc/2yMAFPHihU2OTnB2juYHMNjiFL7tYm71b0/y+066s4e0DeUsbORi2Dc6nyq8trL7jVip9oXNQ+CSTMUP+TrQyZ8qjMtqzdys6/UqKsKxd1MDylfbzGciFsZsgf4tehrg2OP+g/f2SCp0oI0o63d/gR6bvM6R39G3zhFPh/XskynDrnBrKhHzKKqV5k3fEE1YHOndvZvyO9nUNSeHhMfzaJktrZEWY9QZMReTn786zusSavJcqWN+nZ16ATXydEtOBvv92uMlpvDLhhV2XIJT3zBv2u9qbEmGNrJ2T/23krpA6VZ7XOFtnXmcV1RPuZfIl7p4w1a6023Z0IkuXn2t/7imeD/iU+bmvXS7vlWec7OL/GYx5qcjT2K9jVaosvCwovpPbuf+aXRE7G0hWsLyrqJ4Tm7zDjjiTmX6C7AswpXi+NQSlTOJ3+MpZX1nK1qQ1YU1ZM9asdYHVsnXf+sKSsq5aK9aXljXrZyTe8LtsLVivLHnrIlI5a9q6hGyS5zrfee4S1reWXes7i1jIWuesNetz9m8sK8hvW59Ysnj4xHMF+Tz+ri0b6mcZC8eWPaTkrIhmhV/xsWJ9j4UVpLbxsIjPrHWW75Wlxk3V+ho0y/idtZatHy0Z6wfOPmMxgX2RL/FcB1GRWFaRPrVegG4N6x8sFTSWVW4Wu4vsVngKwrL1DH+L3Ly1bFkvLRJdmu8nrC+i8dJSB2sajSK/GaLcI4vzeFvkN4PHt+gkQSLPFTx/sJT4rrGWfK2BJKm5zKBfsD61pFXqkyUH1k3szWLrHejE6wcyUQP3taWBRYnwHb5yxC/RpfBVw2vOem45AHeG2D+TY4n+E3JJsvWcKF6RlQVuMvh7aSmgdwW6Amg+WlbJ4SfVWcHjB43kJd4ryK/yXcTGZ8sccb0nR59B+wJ/Wc3rZ+SS+HpHPs+IqqzR5DiZ1QykVCeJv1dEtQlKuUto7p5rrRNIf7bcVPDasq7sSmCvAJZraiHV/cT5J4vkLquY3oG9SE5WyMw78G1aD4hxHs119SkMmSOjgjiFzEvLZ/B9soiv95Z96zNslED1Egau4DfBXUorIMx5i7ePRPFK2bSo1tLk6D2VKKmuxPOGelxT01dkLslHsK6CVTQ/4k+qnOC0Ds4yWvvWI7K/qrHlwDrP6j2yBXTeW47wWlD876jrK8sO/ZICWx7fCY3kirpsa/6Ee5fwZJZoPpDDlxaJMwvCefzVeEo1pJOu8DyvDJPolpW9S9ysWAWBVFLOP1ukgvMweVb5/B6cn7UbhMlz1gbnwjjJikyKRXSkawpIvifOOavwvHjLoYJV+v0t2ZGOWub8DeeSs4Vb/RK3e7BlV/cyXaQO1xbp70WtX5n4qtiZV3a8IXcfwJGyVol/E4QyU8oaR5ZcbaGzYJUqXIK8dJuTAj7n1L90YwnOFtld4zGnk0dqIxNP+Nng+Vm5t6hsXkfzCnzXFsmDWFihG55ZZHIkdVIK4iUqnNGaNMAqOZf6r5KBF2B6a7nCYt56Yjnh9g23K9oVwuRtrX0OySfEIxUoYvMVXHljkZ6Ufq9xvoC/CpaFB7NamSTPHPZrICxgrwLObZ2Dkv05Zstz8pkGX0W78hr7L2DUsnadTImXeLvCXxUfKe3RLB6FO3lqcgBuOWtgp0YmxfM1DMzio4rdtzpdP1k+WYSZdVZXnCfI/AEWpE+kF9Pgem8RTemrinWXCqa0Xhvko65TY0XnfQqkaZ0A18gndZY+oRtew/YqqGTyF/AqdZ3V6flO6yTTfp6MyQwUbgkfK3TYPnYvqU3dugeiOZ1oN4xfo34VfL7CX926w61M5Usy8ZEIjtlntDOreJO34Zy+a3LcloilhpUU0hfWLXzMWgX/OhncxsoHMH/QiDbwusvdKgirYN8kLsm6sHRTsyEzNY/tBX0nXqhEGUl5B7/Fk7xp5a1YV9TyzhXO7uh0WNS5WiCOM/IkXNxmvad9/MZyrPNGJveJVmzO+lS7RSbCgeVQ55K8O+Ud+lZn/DtqU3LmnDXnsnPLWXKmnQln1Zl0ppzrzkXnGs+yc9Z5zG3DueTMO+eRWuU34yw6C84VnkvOBbQWWVecc84s2otIFVmtOPe4q2N1FqlN53VrwrmNTBrNIjIV5+fWCtYW8J/lU3HKro5eAfkGvtPcZUBRQSKP5yVsfWrddX5szSOfQHID2UWnnGywTyDXwHIdOwk0c9wVeC5hI81pju8isa0iVWMlkZf4zTjftwqiHPgKaJ7zLeAhz22ZbGTIwHVrVlGuqOeUYpJ8HSNZAWuWKE+d70CWRq/o3Ce6NbTn1bdkbQ29A/RzWKzylOxVsbHkPATXdWsOP0k03rduc1fiVqwUVD6HjRrrMlaL7GuK5H3rCTZrWE7xzGMlhd4aX8lpFRnxWgXVMfsKkW6TqSPNzLpWoYJOlvwto7nD+VVrnTiyIFpCbxupFT1PEYEwpMFu3vkU+1UquuSUin5uTWn1JFcp/B0jscHdPoga4N7B4lOtVhlLq+gt8yxzK/cltVHgpqz2xEae/afWgua4qnFvE3NdM3GTu0WQbeC1hHSR9SwxlNCbpXbLfOpaj0Nkl7gR/BLt59YaEVaIQ/yda6WEXUkwfm5NO4/Yr2Bt3Sk5Tmtet5xSxQNslrCawO6+epS8CuYFVlKNBa1xnVvhRkN5taPMPkBigafEt6O9k0fiU+s5PubAWND8CEtO+Eov7mp3CCMb3Ca5q2scYmdTmdvQ2m7ylJy+xNo+uhl+BVtJeVAFUYrTM2L7RNUryJbR/ghrltHcJoMLztdgSNKp6+i+wcOqrqXbEnDyObcVdodglJxtYk9mwgpxSm3W1b9UJMe94NvAp2Q+x6/w513ra70Vfi5xsqaTYgMEmzpDcprnVVizoBVscCNVW2e1wvk+t4vOS9YrauOi9RKkFTK5rpmukKUnyquydoewTqbGNucypYR1MnEKxLWMty1Or5GqaxZzWtEi2ofoCg9q3O7h81Prod7UdKIJCsn4Dj5TOiUlTyllg8yJDe2fqnJEZumh9kMamUVkk1qRE9YfmV4J5bfM1R2dsOvKq0NlgCAR/W3NxpL2VEXnyQ1vhJmf6NE5Pa+q/B6WyuQ5ezuZq8r+mlZAuv66taHdI9Y2ifkzk6ao07zAaZoMZZwX2MigczM/chpt3ilzSDIonXdK56zpSRkUCfQ2lH3CtwWdfIv4WtBZKFNPopD8Sx3yWqubDpc3ybvWVeSWtNLCmZdgqiqLstyusjvhu4TfXbw2dMZvEfOK8kcmeUNt75NP4Z2w8sD5plXm9we4vonHpMrkQLmJhzP8L+gbTmbgMpgOkamil1bf8k6QzGe42dc5XFTeSd2vWw/Av6zM+dCa0ViuWqW3M5zJpM6odEVzKm+meX3TJNCvo7HMrfhOK5O2bjuo4BSvMu028Vwk/1va9ev6Hq1ohZb1tqQT4Ezn4jZoivp2rugbpKTTqcxv1inIVrnb0Fhz+l6S92JW52JOWZrQN/Ky+l3WumSdl8EKn1rwPJgI1oPZ4F5wJ3jBqhjc5rkV3OXuIHgUzLHe5n6TmxfBs2A1uI7sBneHrDa5S3J6wno/WObT4GQf3TqSO3w3kV5FuqQ2y/gU7Qu0y3yfBQvo7gRP0XkazHPzhud28BJUR2jluMvzPVaJM+431cMZHjJg31YbNU6fq4ctTvfQkJMjMO2CepWbPPuT4Byy50hc4HsdJEvstrg9wV4OvSJ3B8GXaL/iroqFC3zv8TngI952+X3OUxBtoPsE1CWN9wxcZ8GUopHzAyI419ztKoJMcIG7Bl6PwVLDwiwy+8EV/B0FP317Cboq90lOX5OVt+zSarWKhS1OJU/7xLundtexVgquaYTp4HvuyuzF/hb2n1CxFJKH/D5R6RMkszwPkTnQSkh+DsFf4Vnj9D2/RSROyNYFOnta3X2+C8R8gIe3SG/wFH6cKdYy1svgOcfKM87WwCD3Z5qRSz3d0oq+wNozrcSG2r0gw684Xcb2K831a3Su+K1i7QysmT9egnMTnSoyb8FTw6NUXBh6EHz/7RnrKpguqd5TTtJIFPl9SmQlrGTZb+DnCVgzwXf4KQbn/ngCqpPgIvGcsfoIviI1eIGGVDupNX4Cjg1WL7D0QhEIko/fviGrW9yda6THIDkHS56zOljq2M1iq64e9+HsMfsznifK27z2iGRihd83nDzRzIm3Gtkp89zHe5VcCJu2iVtQvFRPF6wb2HzOTUI5mUb7FTqXaO5hdwfZM+2CEusNPkk0l9A65OwZdtdYnXArvVbQKj3BstjaUJw1zedTZC7AdY63PP4a4JU+yOrpMTaOyNmZ8lNONshtkXh21KZMkPk/Voikjk6dypU4P1RL4vcT8W9pBctonCD9kpNNal/VnXTpseIt8T0E/zs8rGhfS0bzeJf6zf6xqn0hs+YKS0fciYVTcL5AegX8eTBeKRPE4zL5mSO3+1qdTbL4nt7c1I451f7aIx9rWJJINtArgKfB7SGadWR2wPQS3X0wHXDzChxy2lAWl7Gxh5cNMH389lT7/RDZXeVDnfN1vRMvddDWtbNv+lZ681jzd6H9W2Nd0vstcK4jcYzetk4u6bN9nW5XmluZqHvqbU+n2CHxp8BzoLNtj6fM8QbxLLEvwJd9nYeXYG1gRybxzi1r0/h4goxorHCe04myrJN5ldjzZLDOR+zt6Cxa14yltM5V0B/Qa0es15FOgmQDvW3QrenbY1On7R7YF2GD5O4aNEWdJwdavRuGbaBR0fnT0LweKruzyvJ1fJ2qd5lda6xrSOawLnw903q+1ndHFVxHmgHxu6EskPzn9A22q2+xTe27otawqBPqBL0qUs+V6bv4e6Jvqj3ts5fglpm3pzPnA9Ht4VPqcs7zCsun5L6BZ5m8l9jcCc4Hk99+9L9qv2o/bt9vP2o/bT9vb7Tvtpf5ZNrX2xdYV9oX24vta+319iSrUvsrX7Z9sz3dXmjfaM9ztonkPjcJpHKcbKK1h5Ud9A/aX/uS2Mhw/qT9pa+GTqP9PRZWsJht3+I8g81Ddrusl9qfDT0fOhpK/mlraG0o/afyUHXoBas9Po2hc76NobOhi6Ha0PHQ06HK0OzQq/sfule61/6x3pX47io8/93b8Ox3l+HL8LPwe3aX4Rfhxe8+8Jz97ojn3HfH4Wtu98NL352GP4Y/hM/CL8OZ8Ks/vg48DxwFDjvKHcsd1Y6djhKrckeyI99RY73Z8c5f6Njv2OhY56TEb55dWm/2OoodBx2f/evcVTq2Oa137KK7zm2JVYN1sWMJnWrHYsdJR4L1NpIlbrIdKU7r3C2wPsHfZkeOZxG9bU4LSO2z31M8Rx1b6uGDfxOt7Y5DfFQ7jjtOwfisI4O9E1ZHSM6C7xCJLawV8fjM97pttS33TfmbT55nnleel54Dz6nngs9zzxnfK88LzxvPU26uPa89H9jL6YnnE2fP+J565r5Z+OYt5689u9zMs5775hIrz7D10rP7+33nRmumZc7+znbJfxV6bUnxyVhylrxl2ZK0ZC0f7p00F81V/g/PHzz/H15okEw="
}
[info] CPU 776.4% | Mem 31MiB

[run 3/3]
{
  "zrk_version": "2.3.0",
  "target": { "url": "http://localhost:8080/baseline11?a=1&b=2", "method": "GET" },
  "config": { "connections": 1024, "launched": 1024, "duration_s": 20.000, "closed": false, "target_rate": 500000, "timeout_ms": 2000, "deadline_ms": 0, "deadline_abort": false, "record_timeouts": true },
  "duration_s": 20.008,
  "requests": 5287537,
  "bytes": 824855772,
  "achieved_rate": 264276.55,
  "target_rate": 500000,
  "target_rate_end": 500000,
  "rate_ratio": 0.5286,
  "bytes_per_sec": 41227141.77,
  "error_rate": 0.000000,
  "max_schedule_lag_us": 10423786,
  "latency_us": {
    "min": 48, "mean": 4654746.7, "stdev": 2739376.7, "max": 10428415,
    "p50": 4605952, "p75": 6912000, "p90": 8425472, "p99": 9973760, "p99_9": 10342400, "p99_99": 10391552
  },
  "status_codes": { "1xx": 0, "2xx": 5287537, "3xx": 0, "4xx": 0, "5xx": 0 },
  "errors": { "connect": 0, "read": 0, "write": 0, "timeout": 0, "deadline": 0, "non_2xx_3xx": 0 },
  "latency_histogram": "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"
}
[info] CPU 779.4% | Mem 32MiB
[info] run 3 wins on score

=== Best: 264277 req/s (CPU: 779.4%, Mem: 32MiB) ===
[info] exact CPU: 159.64 core-seconds | 30.191 us/req
=== Fixed-rate: cpu/req 30.19us | p99 9973760.0us | p99.9 10342400.0us | rate_ratio 0.5286 ===
[warn] offered rate fell short: rate_ratio=0.5286 (target 500000/s)
[warn]   the CPU number is not comparable with runs that held the rate
[info] saved results/latency-500k-8cpu/1024/libuvcpp.json
httparena-bench-libuvcpp
httparena-bench-libuvcpp

==============================================
=== libuvcpp / async / 32000c (tool=gcannon) ===
==============================================
[info] waiting for server...
[info] server ready

[run 1/3]
gcannon v0.5.3
  Target:    localhost:8080/
  Threads:   64
  Conns:     32000 (500/thread)
  Pipeline:  1
  Req/conn:  unlimited (keep-alive)
  Expected:  200
  Duration:  10s


  Thread Stats   Avg      p50      p90      p99    p99.9
    Latency   21.13ms   22.00ms   24.20ms   28.20ms   71.70ms

  14010217 requests in 10.00s, 13978217 responses
  Throughput: 1.40M req/s
  Bandwidth:  209.26MB/s
  Status codes: 2xx=13978217, 3xx=0, 4xx=0, 5xx=0
  Latency samples: 13978217 / 13978217 responses (100.0%)
[info] CPU 5001.7% | Mem 492MiB

[run 2/3]
gcannon v0.5.3
  Target:    localhost:8080/
  Threads:   64
  Conns:     32000 (500/thread)
  Pipeline:  1
  Req/conn:  unlimited (keep-alive)
  Expected:  200
  Duration:  10s


  Thread Stats   Avg      p50      p90      p99    p99.9
    Latency   19.84ms   20.00ms   21.50ms   22.20ms   25.40ms

  15716968 requests in 10.00s, 15684968 responses
  Throughput: 1.57M req/s
  Bandwidth:  234.80MB/s
  Status codes: 2xx=15684968, 3xx=0, 4xx=0, 5xx=0
  Latency samples: 15684968 / 15684968 responses (100.0%)
[info] CPU 6409.0% | Mem 488MiB

[run 3/3]
gcannon v0.5.3
  Target:    localhost:8080/
  Threads:   64
  Conns:     32000 (500/thread)
  Pipeline:  1
  Req/conn:  unlimited (keep-alive)
  Expected:  200
  Duration:  10s


  Thread Stats   Avg      p50      p90      p99    p99.9
    Latency   19.88ms   20.20ms   21.60ms   24.50ms   26.10ms

  15419971 requests in 10.00s, 15387971 responses
  Throughput: 1.54M req/s
  Bandwidth:  230.36MB/s
  Status codes: 2xx=15387971, 3xx=0, 4xx=0, 5xx=0
  Latency samples: 15387971 / 15387971 responses (100.0%)
[info] CPU 6193.0% | Mem 487MiB

=== Best: 1568496 req/s (CPU: 6409.0%, Mem: 488MiB) ===
[info] input BW: 71.80MB/s (avg template: 48 bytes)
[info] saved results/async/32000/libuvcpp.json
httparena-bench-libuvcpp
httparena-bench-libuvcpp
[info] rebuilding site/data/*.json
[updated] /home/diogo/actions-runner/_work/HttpArena/HttpArena/site/data/frameworks.json
[updated] /home/diogo/actions-runner/_work/HttpArena/HttpArena/site/data/results/libuvcpp.json - 42 new, 42 total
[updated] /home/diogo/actions-runner/_work/HttpArena/HttpArena/site/data/current.json
[info] done
httparena-postgres
[info] restoring loopback MTU to 65536

`json-compressed` is the one profile in this suite scored on bytes --
`effectiveRps = rps * (minBpr / myBpr)^2` -- and it is the one profile whose
request asks for both encoders (`Accept-Encoding: gzip, br`, byte for byte in
`requests/json-gzip-*.raw`). The library has carried a brotli encoder since
1.7.0 behind `UVCPP_ENABLE_BROTLI`, default OFF, so until now that request was
answered with gzip and the entry competed on the byte term with a compressor it
had left on the bench.

This is the framework's own response-compression middleware, not a tuned
library: the same `uvcpp_http_server` filter, the same per-request
`Accept-Encoding` negotiation, at the library's own default quality. That is
what keeps it inside the entry's declared `mode: standard`, whose rule for this
profile reads "Must use the framework standard JSON serialization and the
framework or engine's built-in response compression (middleware, filter, or
equivalent)" -- and the profile's own title names brotli. Nothing here picks an
encoder or a level per profile: a client that asks for gzip alone still gets
gzip, and a client that sends no `Accept-Encoding` still gets no
`Content-Encoding`.

What it is worth, from numbers this entry already has. The three json-comp
bodies (4190/6707/8397 B) go from 970/1330/1567 B under gzip to 856/1182/1389 B
under brotli q5 -- the encoder's own table in `web/uvcpp_http_compress.h`, whose
default quality is the maximum of that table's score model -- and brotli's
tie-break over gzip at equal `q` is the rank rule in
`web/uvcpp_http_compress.cpp`. Over the profile's round-robin that is ~1142 B of
body against ~1288 B, which against the measured bpr of 1429 (140 B of headers)
is a byte term of (1429/1283)^2 ~ x1.24. The cost is ~+31.5 us per response, and
json-comp runs at 101% of its CPU budget (6476.7% of 6400%), so it pays for that
in requests per second: 199.0/230.5 ~ 0.86. Net ~x1.07 on both json-comp
profiles.

The blast radius is the other half of the argument, because the same flag also
answers the h2 and h3 load generators, which ask for `br;q=1, gzip;q=0.8`. Those
profiles are not CPU-bound -- gateway-64 sits at 3723% of budget, gateway-h3 at
3685%, production-stack at 3165%, static-h2 at 2463% -- so they absorb the
compression without giving up requests, and the 7 `/json` and 3 `/async-db` URIs
of gateway's 20-URI mix come back ~11% smaller. `json-tls`, `json-h2c`,
`async-db` and the h1 baseline profiles send no `Accept-Encoding` at all. The
static legs are unaffected by this flag in either direction: they serve the
`.br` twins `data/static` already ships, and that selection is runtime, in
`http_pick_precompressed_variants()`.

Build side: `libbrotli-dev` in the build stage, `libbrotli1` in the runtime one.
The encoder is the third shared library the build cannot absorb -- zlib and libuv
are fetched and linked statically, this one is taken from the system -- so
`libuvcpp.so` gains `libbrotlienc.so.1` and `libbrotlidec.so.1` in its
`DT_NEEDED`, and without them the server does not start at all. On noble both
files are `libbrotli1`; Debian's split names (`libbrotlienc1` and friends) are
not packages here, which is the kind of mistake that only surfaces as a failed
image build.

The pin does not move: `UVCPP_ENABLE_BROTLI` and `k_brotli_quality_default` are
both in 8150720 (1.7.2-dev), so this is an entry-side change only.
@MDA2AV

MDA2AV commented Oct 15, 2026

Copy link
Copy Markdown
Owner

You need to use a proper json parser (for example nlohmann/json) for tests that do json serialization, unless you classify as an engine.

Both stacks put a stock `caddy:2-alpine` at the edge. On both, the edge was the
bottleneck and Caddy was why: over the profiles' fixed HTTP/1.1 upstream hop it
costs several times what nginx does per request. This replaces it with stock
`nginx:1.27-alpine` in ../proxy/ and ../proxy-production/, and the Caddyfiles
become gateway-h3's alone, in ../proxy-h3/.

What the two edges cost, measured on this machine at each profile's own
operating point, same rig, same backend, A B A B (all four on a core budget the
rig splits off with taskset; the harness's own numbers are in the platform run
that follows):

  gateway-64, 512 conns x m32, 4 edge cores:
    Caddy                  14,999 / 16,015 rps   edge 396-400% of 400%, 306 us/req
    nginx                  32,462 / 37,754 rps   edge 345-377%,          86 us/req
  production-stack, c=256 reads m16 + c=32 writes m8, 4 edge cores:
    Caddy                   8,620 /  8,377 rps   edge 359-361%, 425-440 us/req
    Caddy + a pooled auth upstream
                            9,457 rps             edge 359%,     392 us/req
    nginx                  39,495 / 39,346 rps   edge 372-375%, 100 us/req

The edge is pinned at its core budget in every arm, so this is an edge-limited
number rather than a backend one: on gateway-64 the proxy was at 96% of its 32
CPUs while the server sat at 23%, and with nginx the two come out balanced. The
best Caddy arm is still 4.1x behind on throughput and 3.9x behind on edge CPU
per request; the platform's own cross-entry figures agree (372-404 us/req for
the three Caddy `gateway-64-512` edges against 100-110 for the three nginx ones).

Why this is the compliant direction and not just the faster one. The gateway
rules list "proxy choice" among the things entries compete on and their example
compose uses nginx; `production-stack`'s architecture diagram names nginx and
`auth_request`, and its rules put JWT verification at the edge behind exactly
that. Neither stack is h3, so unlike the gateway pair this one needs no Caddy
twin -- h3 is the single profile that cannot follow, because h3 needs QUIC and
nginx has no HTTP/3 without a custom build against a QUIC library.

Two things the rig turned up that the old Caddyfiles asserted or configured
wrong, both now recorded in ../proxy-production/nginx.conf:

  - The Caddyfile claimed the server "never" receives the Authorization header.
    It does. Dumped from a header-dumping backend behind each edge: Caddy's
    forward_auth passes the bearer token through alongside the X-User-Id it
    copied. The nginx config drops it deliberately (proxy_set_header
    Authorization ""), which is the tighter reading of "verification happens at
    the edge" -- the token cannot be re-verified downstream -- and keeps ~200 B
    off every /api/* request. Neither behavior is a rule violation; the comment
    that claimed otherwise was simply false.
  - That Caddyfile pooled the backend upstream but never configured a transport
    for its forward_auth upstream. Counted at the authsvc: Caddy opened 0.77
    connections per auth subrequest (21,115 for 27,510) against 0.024 for
    nginx's `keepalive 256` pool (2,997 for 122,818), which is most of why its
    auth leg cost 96 us/req where nginx's costs 20. Giving the Caddyfile the
    same pool lifted it from 8.4k to 9.5k rps -- real, and nowhere near enough
    to change the conclusion.

Verified locally before pushing, since the platform queue is long:
  - `nginx -t` on both configs through the rig's path substitutions; `caddy
    validate` on ../proxy-h3/Caddyfile; all three compose files parsed and each
    resolves to a build context that now holds a Dockerfile plus its config.
  - The full functional set `_validate_production_stack` runs, on both edges:
    15/15 each -- h2 negotiated, static Content-Type/size, /public/baseline and
    /public/json/25, 401 on all four unauthenticated /api/ cases, /api/items/1
    id=1, cache-aside MISS then HIT, POST 204, POST invalidation MISS, /api/me
    id=42 (which is also the proof that X-User-Id survives the hop).
  - Every path the profile touches dumped from both edges and compared byte for
    byte: same status and same body throughout. Headers differ only where the
    gateway swap already documented (content-encoding br->gzip on the
    precompressed twin, Caddy's accept-ranges/alt-svc, text/javascript vs
    application/javascript). The one behavioral difference is a path matching
    none of the three prefixes -- Caddy answered an empty 200, nginx answers
    404 -- and nothing reads it: the load URIs cover /static/, /public/ and
    /api/ only, and neither the edge nor the server declares a healthcheck.

Not verified here, and the first thing CI should say: the images themselves.
There is no docker on this machine, so both Dockerfiles were written from the
base images' documented contents and the configs were only exercised as
processes on the host.
The 2026-10-15 validate-gateway run failed four production-stack checks --
the three auth-wall 401s plus /api/items/1 -- and the response carries
`server: uvcpp`, so the server answered them itself. The harness runs a
compose stack's checks while the entry's own standalone container is still
up: `--network host` and /certs mounted, because this entry subscribes to
an h2 test, so uvcpp binds 0.0.0.0:8443 as well -- one SO_REUSEPORT socket
per loop, 64 of them on the runner. `listen 8443` put the edge in the same
reuseport group, so the kernel hashed localhost:8443 across the edge and
the server, and every request that landed on the server got its 8443
listener's 404 for /api/* (those routes live on h1 only, by design,
main.cc:1924).

Reproduced on the rig against a 64-socket wildcard holder: 3/24 requests
reach the edge with the wildcard listen, 24/24 with the two loopbacks, and
the full production-stack check set passes with the holder up. Caddy never
had this because `https://localhost:8443` is a hostname it resolves into
these same two binds, and a specific bind wins the listener lookup
outright -- the wildcard socket is then never chosen at all.

gateway-64's edge has the same wildcard and its checks cannot see the
split: /static/*, /json, /async-db and /baseline2 are exactly the paths
the standalone entry answers too. Both edges get the fix.
MDA2AV on MDA2AV#1568: "You need to use a proper json parser (for example
nlohmann/json) for tests that do json serialization, unless you classify
as an engine." That is the rule this entry was on the wrong side of.

Where it comes from: implementation-rules/frameworks/standard.md:55 says to
use the ecosystem's production-grade library for a task like JSON
serialization and that "Experimental or hand-rolled alternatives solely for
benchmark performance are not permitted"; json-compressed/implementation.md's
type-rule for `standard` asks for "the framework standard JSON
serialization"; and tuned.md lists "Alternative JSON serializers" among the
things *Tuned* allows. `uvcpp_json_writer` -- a public, documented API of
this library, but an alternative serializer -- is a Tuned technique, and
meta.json declares `mode: standard`. So it is not this entry's to answer
these profiles with.

/json, /public/json/:count and /async-db now build an `nlohmann::json` DOM
per request from the live data and hand it to `resp.json()`, which is the
framework's own `uvcpp_json_dump()` (`src/webapp/uvcpp_web_response.cpp:470`).
Nothing is pre-rendered or cached. Reading goes the same way: parsing is
`uvcpp_json_parse` and field access is `uvcpp_json_get_string`/`_get_int`,
not nlohmann's `parse`/`value()`/`[]` -- the library publishes those
accessors precisely so a handler cannot throw out of a libuv callback. The
hand-written payload literals are gone with them: `{}`,
`{"error":"unauthorized"}` and the empty `/async-db` result set are built by
the serializer like every other body.

What this gives up, in the entry's own measurements: at the 1.7.2-dev pin,
/json/50?m=6 cost 63.2 us of server CPU per request through the writer
against 176.0 us through the DOM path on the same 6 pinned cores, and the
writer path also skipped the per-item DOM copy. The rules decide this, not
the measurement, so all three profiles take the DOM path.

What it does not give up: a single response byte that any check looks at.
Both binaries were run side by side on the same machine -- 49 URLs covering
every serialization route, both dataset routes, the five /async-db shapes
and /api/* -- and every body compared after canonicalisation: 0 mismatches,
/json/50?m=6 at 8397 bytes on both. The only raw difference is top-level key
order, which is now the sorted order nlohmann's default `std::map` object
produces, and is the order this entry's reference path and /api/items have
always used. scripts/validate.sh parses every JSON body with Python's `json`
and diffs fields against data/dataset.json (json-comp at 1515-1575, json-h2c
at 1930-1960, json-tls at 1655+, async-db at 2180-2219); no check compares a
body byte for byte. The 401, 503, malformed-body and non-object-body paths
were exercised by hand afterwards and are unchanged.
@Antruly Antruly changed the title libuvcpp: move the pin to 1.7.2-dev and write /async-db with the writer libuvcpp: move the pin to 1.7.2-dev, and answer the JSON profiles with the framework's standard serializer Oct 15, 2026
@Antruly

Antruly commented Oct 15, 2026

Copy link
Copy Markdown
Contributor Author

Done — thank you for catching it. You're right that this doesn't belong in a standard entry: meta.json claims no engine classification, and uvcpp_json_writer is exactly what tuned.md lists under "Alternative JSON serializers". It's out.

/json, /public/json/:count (so json-comp, json-tls and json-h2c) and /async-db now build an nlohmann::json DOM per request out of the live data and hand it to resp.json() — the framework's own uvcpp_json_dump(). Nothing is pre-rendered or cached. Reading goes the same way: uvcpp_json_parse and the uvcpp_json_get_* accessors instead of nlohmann's parse/value()/[]. The hand-written payload literals ({}, {"error":"unauthorized"}, the empty /async-db result set) are gone with them, and so are the flattened-dataset pre-read, its fast path and its byte-for-byte self-check. One serializer, one path.

The cost, so it is on the record rather than discovered later: at this pin /json/50?m=6 was 63.2 us of server CPU per request through the writer against 176.0 us through the DOM, and the writer also skipped a per-item DOM copy. So json-comp, json-tls and json-h2c will read lower than the run from earlier today. That is a deliberate loss — the rules decide it, not the measurement — and I am not going to argue the other side of it.

Both binaries were then run side by side on the same machine over 49 URLs (every serialization route, both dataset routes, five /async-db shapes, /api/*) and every body compared after canonicalisation: 0 mismatches, /json/50?m=6 at 8397 bytes on both. The only raw difference is top-level key order, which is now the sorted order nlohmann's default std::map object produces — the order this entry's reference path and /api/items have always used. scripts/validate.sh parses every JSON body and diffs fields against data/dataset.json, so no check depends on that order. The 401, 503, malformed-body and non-object-body paths were exercised separately and are unchanged.

The batch, and why each member is taken, is written out in the Dockerfile.
In one line each: `e716010` stops building a log line nobody installed a
callback to receive (106.16/106.15 -> 102.18/102.22 allocations per
response, A B B A); `3cbfc9a` lets one QUIC datagram carry STREAM frames
from several streams (sendmsg per request 1.0316/1.0360 -> 0.0428/0.0561);
`370d6ef` sizes each QUIC send chunk from what that write needs instead of
reserving 64 KiB flat (72 374.8 -> 7 507.5 bytes allocated per request,
-89.6%, peak RSS 91 -> 50 MiB); and `02ae418` lets `resp.json()` take the
dumped body instead of copying it (-1.0000 memcpy per request, -8 397 bytes
copied per request -- the body's own length -- and -0.83% instructions per
request on /json/50?m=6).

Every one of those is a local deterministic counter, not an on-board
measurement, and none is offered as a predicted board movement. What this
revision is actually for is the entry side, which is not in the pin: the
fifth run measured `uvcpp_json_writer` (its `async-db-1024` row at 271.85 us
of CPU per response against the fourth run's 407.2), and this entry answers
those profiles through the framework's standard serializer again (9964faf).
So the fifth run's `json-*` and `async-db` rows are not this entry's
baseline; the fourth run's are.

Validated locally before asking for a run, on this machine, against the
pin's own library built here: the entry's five listeners up with the whole
fragment suite 9/9 and the WebSocket suite 7/7; `/json/50?m=6` 8 397 bytes
plain and 1 393 bytes under `Accept-Encoding: gzip, br` (gzip alone 1 567);
the `.br` twin of a static file served with `Content-Encoding: br`; and the
two h3 shapes at 783 971 req/s (baseline) and 17 219 req/s (static) with
0 `5xx` between them.
@Antruly

Antruly commented Oct 15, 2026

Copy link
Copy Markdown
Contributor Author

Pin moved to 02ae418 (1.7.2-dev) and the entry validated on this machine before asking for a run.

/benchmark -f libuvcpp --save

What is in the pin

Four code commits past 8150720 (the other two commits in the range are documentation). Each one's criterion is a local deterministic counter, not a board measurement, and each is written out with its numbers in the Dockerfile comment above ARG LIBUVCPP_REF:

  • e716010 — no log line is built when no log callback is installed (106.16 / 106.15 -> 102.18 / 102.22 allocations per response, A B B A). async-db is Reference-only, so this is a counter and nothing more.
  • 3cbfc9a — one QUIC datagram carries STREAM frames from several streams (sendmsg per request 1.0316 / 1.0360 -> 0.0428 / 0.0561).
  • 370d6ef — each QUIC send chunk is sized from what that write needs instead of reserving 64 KiB flat (72 374.8 -> 7 507.5 bytes allocated per request, -89.6%; peak RSS 91 -> 50 MiB on the local h3 rig, where 64 connections × 64 streams × 64 KiB is the same shape as the 238 MiB the board reports for baseline-h3-64).
  • 02ae418 — resp.json() takes the dumped body instead of copying it (-1.0000 memcpy per request and -8 397 bytes copied per request, which is the body's own length; -0.83% instructions per request on /json/50?m=6).

What is not in the pin, and is the reason this run is worth taking

The entry side. 9964faf answers /json, /public/json/:count and /async-db through the framework's standard serializer again, which is what the fifth run measured the opposite of: its async-db-1024 row came in at 271.85 µs of CPU per response against the fourth run's 407.2, and that fall is attributable to the entry commit this PR no longer carries. So this PR's json-* and async-db rows are meant to be read against the fourth run, not the fifth — the fifth's rows for those profiles measured a tree that no longer exists, in either sense. Brotli is built on here too, which is the byte term of a profile scored quadratically in bytes per response.

None of the above is offered as a predicted movement for any row.

Local validation, against this pin's own library built here

  • Five listeners up; fragment suite 9/9, WebSocket suite 7/7.
  • /json/50?m=6 — 8 397 bytes plain, 1 393 bytes under Accept-Encoding: gzip, br (gzip alone 1 567), i.e. br negotiated and chosen by the client's own ordering.
  • The precompressed .br twin of a static file served with Content-Encoding: br and Vary: accept-encoding.
  • h3 shapes on the local rig: 783 971 req/s (baseline) and 17 219 req/s (static), 0 5xx between them.
  • /async-db 200 against the local Postgres, gRPC 200, h2c and TLS h1 legs OK.

The library side of the pin is Antruly/libuvcpp at 02ae418; the entry's main.cc here is unchanged by this push, so the compliance revert in 9964faf is the only entry-side change the run will carry on top of the fifth run's tree.

@github-actions

Copy link
Copy Markdown
Contributor

👋 Benchmark request received. A collaborator will review and approve the run.

@github-actions

Copy link
Copy Markdown
Contributor

Benchmark Results

Framework: libuvcpp | Test: all tests

Test Conn RPS Rate CPU/req p99 p99.9 CPU Mem Δ RPS Δ Mem
baseline 4096 1,708,528 — — — — 6713.7% 141MiB +4.2% +1.4%
pipelined 4096 7,326,797 — — — — 6643.2% 153MiB +8.0% +3.4%
limited-conn 4096 1,385,176 — — — — 6288.4% 88MiB +5.7% -12.9%
json-comp 4096 50,389 — — — — 6239.0% 131MiB -84.5% +9.2%
json-comp 16384 59,118 — — — — 6127.5% 140MiB -81.6% -13.6%
json-tls 4096 403,673 — — — — 6210.0% 411MiB -40.0% +3.8%
8gbit 512 49,371 0.9874 65.63us 144.0us 5938.0us 327.1% 166MiB +0.4% +29.7%
static-tls 1024 198,927 — — — — 3077.4% 409MiB +4.6% +47.1%
async-db 1024 87,341 — — — — 3381.8% 174MiB +4.1% -9.4%
baseline-h2 256 5,425,606 — — — — 6345.3% 112MiB +20.6% +0.9%
baseline-h2 1024 5,435,683 — — — — 6189.7% 174MiB +15.9% -2.2%
static-h2 256 242,138 — — — — 2181.2% 187MiB +1.4% -1.1%
static-h2 1024 239,512 — — — — 2285.9% 511MiB -1.2% -35.6%
baseline-h2c 256 5,680,497 — — — — 6189.5% 83MiB +17.1% +1.2%
baseline-h2c 1024 5,552,958 — — — — 6334.9% 144MiB +18.9% -12.2%
baseline-h2c 4096 5,316,594 — — — — 6380.1% 795MiB +13.1% -2.0%
json-h2c 1024 656,607 — — — — 6343.2% 306MiB -56.1% +2.7%
json-h2c 4096 634,021 — — — — 6240.8% 1.0GiB -57.3% +4.2%
baseline-h3 64 3,030,258 — — — — 3451.5% 134MiB +159.7% -43.7%
static-h3 64 113,382 — — — — 2980.8% 272MiB -0.7% -42.4%
gateway-64 512 122,364 — — — — 4870.7% 1.4GiB +61.2% -44.0%
gateway-64 1024 120,098 — — — — 5119.2% 2.0GiB +74.9% -58.3%
gateway-h3 64 80,155 — — — — 4577.5% 446MiB -4.8% +14.4%
gateway-h3 256 62,641 — — — — 3509.0% 1.4GiB +0.2% -6.7%
production-stack 256 258,622 — — — — 4823.0% 1.2GiB +381.7% +27.7%
production-stack 1024 204,370 — — — — 4218.6% 2.0GiB +341.7% -28.6%
unary-grpc 256 3,827,901 — — — — 5973.8% 145MiB +12.9% ~0%
unary-grpc 1024 3,725,148 — — — — 6439.3% 414MiB +14.1% +0.5%
unary-grpc-tls 256 3,695,725 — — — — 6138.1% 163MiB +12.5% -1.2%
unary-grpc-tls 1024 3,533,276 — — — — 6160.5% 594MiB +14.3% -0.7%
echo-ws 512 2,851,128 — — — — 6547.2% 78MiB +3.6% -1.3%
echo-ws 4096 2,929,961 — — — — 6350.7% 130MiB +3.0% ~0%
echo-ws 16384 2,611,015 — — — — 6099.8% 329MiB +3.7% -2.7%
echo-ws-pipeline 512 30,734,953 — — — — 6655.7% 79MiB +2.4% ~0%
echo-ws-pipeline 4096 31,601,507 — — — — 6412.9% 136MiB +9.2% -1.4%
echo-ws-pipeline 16384 28,207,107 — — — — 6280.7% 358MiB +12.0% +0.3%
echo-ws-limited 512 1,593,577 — — — — 5883.1% 93MiB +2.8% +3.3%
echo-ws-limited 4096 1,795,680 — — — — 6180.1% 95MiB +1.0% -2.1%
latency-1m 1024 997,684 0.9977 38.86us 314.0us 2651.0us 4218.0% 81MiB ~0% ~0%
latency-10k 1024 9,982 0.9982 37.85us 117.0us 603.0us 36.2% 76MiB ~0% -1.3%
latency-500k-8cpu 1024 264,320 0.5286 ⚠️ 30.18us 9891840.0us 10579968.0us 779.2% 32MiB +7.9% ~0%
async 32000 1,533,457 — — — — 6212.9% 490MiB +1.3% ~0%
Full log
  "duration_s": 20.002,
  "requests": 199661,
  "bytes": 31147116,
  "achieved_rate": 9981.99,
  "target_rate": 10000,
  "target_rate_end": 10000,
  "rate_ratio": 0.9982,
  "bytes_per_sec": 1557189.97,
  "error_rate": 0.000000,
  "max_schedule_lag_us": 0,
  "latency_us": {
    "min": 41, "mean": 81.1, "stdev": 426.7, "max": 38431,
    "p50": 67, "p75": 75, "p90": 102, "p99": 125, "p99_9": 226, "p99_99": 26680
  },
  "status_codes": { "1xx": 0, "2xx": 199661, "3xx": 0, "4xx": 0, "5xx": 0 },
  "errors": { "connect": 0, "read": 0, "write": 0, "timeout": 0, "deadline": 0, "non_2xx_3xx": 0 },
  "latency_histogram": "HISTFAAAAk94nC1RXUgUURSe883szrgzu7M/bG6sq6iZm2mSlkZaEiURYSUSEoL9UFBEaC+G0MMW5UqgyFoPmYgYWQiVRA9hEiQVYSQhYj34UBLRLywFsfQQfTs2lzvn3O9895zvnJt3aTCkKBhSVj71vxXnMJhUGtIrQLM7Uj8gc5KW93io/lbHXAljwDe5dqF1NiVP7srQhMxclbGk3OmaO/xm7+LOxd0jB6aPv+uc6HrU+efkfPvHluld32tSlSNlifhk6UzJVNHPgkTsa+RFaNQ/4eu3xsxhc9Ezb3zW+/WEPqov0y65h9y97mfGX/OKb8F/L7AUTIeHw5PBHrvH/uR9YKXNUSvjyXimzBkjoY9rF7WUuoxeZGRZXkovZmVczqfkWPu+qqoN8a3l9Ue215SVbamKxzeVr4n48/Mj8aJ4Xp4n6A+u8hs+S/NZlmEZGqBqChQNmg4ooK8jhBy4uLwo4DqBOuwn8lTwXNDKeANqocLGY+HvmqCC5iz6gC+CX4K3gg+CmxquC14LGsnfgyaY6EZSxQ9BNc6hA0fxSljigiCGNsZzwTS3BM1kVlBDMau24RDWUVY1ES/uC0VtAxW4GHchTKwSJQiAV3JwikQbZ3BZsJ7ZTDIKGd9MuJH8sNMTAprNpooJBHgn7KQx6ZtOSwFEHaqq1RKJZlMXMlDA3ZSdTynlqGBdHTH3QSYIMaYTruSK0daRn0XCSApW8wZ9m/PKpYYoduC2jo3oyzZyGjfEGTEHX0pqA3che3Y5Yry0ttbNfB08t+Cb8CH+ARSRggA="
}
[info] CPU 37.9% | Mem 79MiB
[info] run 2 wins on score

=== Best: 9982 req/s (CPU: 36.2%, Mem: 76MiB) ===
[info] exact CPU: 7.56 core-seconds | 37.853 us/req
=== Fixed-rate: cpu/req 37.85us | p99 117.0us | p99.9 603.0us | rate_ratio 0.9982 ===
[info] saved results/latency-10k/1024/libuvcpp.json
httparena-bench-libuvcpp
httparena-bench-libuvcpp

==============================================
=== libuvcpp / latency-500k-8cpu / 1024c (tool=zrk) ===
==============================================
[info] waiting for server...
[info] server ready

[run 1/3]
{
  "zrk_version": "2.3.0",
  "target": { "url": "http://localhost:8080/baseline11?a=1&b=2", "method": "GET" },
  "config": { "connections": 1024, "launched": 1024, "duration_s": 20.000, "closed": false, "target_rate": 500000, "timeout_ms": 2000, "deadline_ms": 0, "deadline_abort": false, "record_timeouts": true },
  "duration_s": 20.007,
  "requests": 5283074,
  "bytes": 824159544,
  "achieved_rate": 264065.58,
  "target_rate": 500000,
  "target_rate_end": 500000,
  "rate_ratio": 0.5281,
  "bytes_per_sec": 41194231.23,
  "error_rate": 0.000000,
  "max_schedule_lag_us": 11263316,
  "latency_us": {
    "min": 53, "mean": 4621029.5, "stdev": 2770070.9, "max": 11272191,
    "p50": 4515840, "p75": 6764544, "p90": 8450048, "p99": 10358784, "p99_9": 11128832, "p99_99": 11218944
  },
  "status_codes": { "1xx": 0, "2xx": 5283074, "3xx": 0, "4xx": 0, "5xx": 0 },
  "errors": { "connect": 0, "read": 0, "write": 0, "timeout": 0, "deadline": 0, "non_2xx_3xx": 0 },
  "latency_histogram": "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"
}
[info] CPU 776.2% | Mem 31MiB

[run 2/3]
{
  "zrk_version": "2.3.0",
  "target": { "url": "http://localhost:8080/baseline11?a=1&b=2", "method": "GET" },
  "config": { "connections": 1024, "launched": 1024, "duration_s": 20.000, "closed": false, "target_rate": 500000, "timeout_ms": 2000, "deadline_ms": 0, "deadline_abort": false, "record_timeouts": true },
  "duration_s": 20.007,
  "requests": 5284687,
  "bytes": 824411172,
  "achieved_rate": 264136.84,
  "target_rate": 500000,
  "target_rate_end": 500000,
  "rate_ratio": 0.5283,
  "bytes_per_sec": 41205346.50,
  "error_rate": 0.000000,
  "max_schedule_lag_us": 10324951,
  "latency_us": {
    "min": 48, "mean": 4662185.6, "stdev": 2736043.6, "max": 10330111,
    "p50": 4618240, "p75": 6920192, "p90": 8466432, "p99": 9826304, "p99_9": 10211328, "p99_99": 10285056
  },
  "status_codes": { "1xx": 0, "2xx": 5284687, "3xx": 0, "4xx": 0, "5xx": 0 },
  "errors": { "connect": 0, "read": 0, "write": 0, "timeout": 0, "deadline": 0, "non_2xx_3xx": 0 },
  "latency_histogram": "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"
}
[info] CPU 775.8% | Mem 33MiB

[run 3/3]
{
  "zrk_version": "2.3.0",
  "target": { "url": "http://localhost:8080/baseline11?a=1&b=2", "method": "GET" },
  "config": { "connections": 1024, "launched": 1024, "duration_s": 20.000, "closed": false, "target_rate": 500000, "timeout_ms": 2000, "deadline_ms": 0, "deadline_abort": false, "record_timeouts": true },
  "duration_s": 20.008,
  "requests": 5288405,
  "bytes": 824991180,
  "achieved_rate": 264319.78,
  "target_rate": 500000,
  "target_rate_end": 500000,
  "rate_ratio": 0.5286,
  "bytes_per_sec": 41233885.67,
  "error_rate": 0.000000,
  "max_schedule_lag_us": 10693907,
  "latency_us": {
    "min": 54, "mean": 4661938.9, "stdev": 2727708.6, "max": 10698751,
    "p50": 4630528, "p75": 6952960, "p90": 8353792, "p99": 9891840, "p99_9": 10579968, "p99_99": 10653696
  },
  "status_codes": { "1xx": 0, "2xx": 5288405, "3xx": 0, "4xx": 0, "5xx": 0 },
  "errors": { "connect": 0, "read": 0, "write": 0, "timeout": 0, "deadline": 0, "non_2xx_3xx": 0 },
  "latency_histogram": "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"
}
[info] CPU 779.2% | Mem 32MiB
[info] run 3 wins on score

=== Best: 264320 req/s (CPU: 779.2%, Mem: 32MiB) ===
[info] exact CPU: 159.60 core-seconds | 30.180 us/req
=== Fixed-rate: cpu/req 30.18us | p99 9891840.0us | p99.9 10579968.0us | rate_ratio 0.5286 ===
[warn] offered rate fell short: rate_ratio=0.5286 (target 500000/s)
[warn]   the CPU number is not comparable with runs that held the rate
[info] saved results/latency-500k-8cpu/1024/libuvcpp.json
httparena-bench-libuvcpp
httparena-bench-libuvcpp

==============================================
=== libuvcpp / async / 32000c (tool=gcannon) ===
==============================================
[info] waiting for server...
[info] server ready

[run 1/3]
gcannon v0.5.3
  Target:    localhost:8080/
  Threads:   64
  Conns:     32000 (500/thread)
  Pipeline:  1
  Req/conn:  unlimited (keep-alive)
  Expected:  200
  Duration:  10s


  Thread Stats   Avg      p50      p90      p99    p99.9
    Latency   21.27ms   22.00ms   24.50ms   28.70ms   61.80ms

  13883473 requests in 10.00s, 13851473 responses
  Throughput: 1.38M req/s
  Bandwidth:  207.36MB/s
  Status codes: 2xx=13851473, 3xx=0, 4xx=0, 5xx=0
  Latency samples: 13851473 / 13851473 responses (100.0%)
[info] CPU 5042.4% | Mem 487MiB

[run 2/3]
gcannon v0.5.3
  Target:    localhost:8080/
  Threads:   64
  Conns:     32000 (500/thread)
  Pipeline:  1
  Req/conn:  unlimited (keep-alive)
  Expected:  200
  Duration:  10s


  Thread Stats   Avg      p50      p90      p99    p99.9
    Latency   19.91ms   20.20ms   21.70ms   22.50ms   23.90ms

  15341623 requests in 10.00s, 15309623 responses
  Throughput: 1.53M req/s
  Bandwidth:  229.19MB/s
  Status codes: 2xx=15309623, 3xx=0, 4xx=0, 5xx=0
  Latency samples: 15309623 / 15309623 responses (100.0%)
[info] CPU 6144.0% | Mem 489MiB

[run 3/3]
gcannon v0.5.3
  Target:    localhost:8080/
  Threads:   64
  Conns:     32000 (500/thread)
  Pipeline:  1
  Req/conn:  unlimited (keep-alive)
  Expected:  200
  Duration:  10s


  Thread Stats   Avg      p50      p90      p99    p99.9
    Latency   20.03ms   20.30ms   21.70ms   22.50ms   23.10ms

  15366577 requests in 10.00s, 15334577 responses
  Throughput: 1.53M req/s
  Bandwidth:  229.56MB/s
  Status codes: 2xx=15334577, 3xx=0, 4xx=0, 5xx=0
  Latency samples: 15334577 / 15334577 responses (100.0%)
[info] CPU 6212.9% | Mem 490MiB

=== Best: 1533457 req/s (CPU: 6212.9%, Mem: 490MiB) ===
[info] input BW: 70.20MB/s (avg template: 48 bytes)
[info] saved results/async/32000/libuvcpp.json
httparena-bench-libuvcpp
httparena-bench-libuvcpp
[info] rebuilding site/data/*.json
[updated] /home/diogo/actions-runner/_work/HttpArena/HttpArena/site/data/frameworks.json
[updated] /home/diogo/actions-runner/_work/HttpArena/HttpArena/site/data/results/libuvcpp.json - 42 new, 42 total
[updated] /home/diogo/actions-runner/_work/HttpArena/HttpArena/site/data/current.json
[info] done
httparena-postgres
[info] restoring loopback MTU to 65536

@Antruly

Antruly commented Oct 15, 2026

Copy link
Copy Markdown
Contributor Author

One more mode: standard question, in the same shape as the serializer one you answered on this PR — I'd rather ask than guess.

/json/{count} is negotiated from Accept-Encoding: gzip, br, and the server picks br. The entry sets no compression level, so it runs the library default: brotli quality 5. set_compress_level() is a documented public API of our framework — our web http guide covers exactly this bytes↔CPU trade-off — not a flag found by reading the source.

Measured on the profile's own request shapes, intra-process paired A/B so machine drift cancels (the control arm, the same setting against itself, reads 0.999):

brotli quality bytes/response CPU/request profile score vs. today
5 (default, today) 1142 B 1.00× 1.00
3 1263 B 0.48× ≈1.7×
2 1314 B 0.45× ≈1.7×

The last column is the profile's own rps × (minBpr/myBpr)². Compression still runs per request — nothing precomputed, nothing cached, no extra library.

Which way it lands is genuinely unclear to me:

  • json-compressed/implementation.md reads as if the level is the entry's own choice — "Gzip-only frameworks are competitive when their compression level is aggressive enough", and the leaderboard prints "gzip at its chosen level". standard.md likewise allows capacity settings chosen for the environment (worker counts, pool sizes).
  • But standard.md says non-default configuration is allowed only where the framework's production guide recommends it — ours documents the knob and recommends no particular value — and tuned.md lists "tuned compression libraries" and ends with "if in doubt, start with standard and switch to tuned".

So: is choosing a non-default compression level through the framework's own documented API a standard setting, or does it belong in tuned? If it's tuned, I'll leave quality 5 where it is — I'm not trying to move the entry out of standard.

The sixth run turned the framework's brotli encoder on to see what the
profile's own `Accept-Encoding: gzip, br` would negotiate; it negotiates
`br`, and the run measured what that costs.

`json-compressed` is the one profile in this repository scored on response
bytes (`effectiveRps = rps * (minBpr / bpr)^2`). Against the fifth run,
whose tree answered with gzip, `json-comp-4096` went 335 926 -> 50 389 rps
(-85.0%) with `CPU/req` 186.4 -> 1 238.2 us, and `json-comp-16384`
330 411 -> 59 118 (-82.1%) with 196.9 -> 1 036.5 us. Both runs saturate the
same 62 cores (62.4 / 61.3), so that is cost per request. The batch's other
three `json-*` profiles pay 58-66 us each for the standard serializer they
share with these two, which leaves about 990 us of the increase on the
encoder. On the same request measured here with the server pinned to 8
cores, only `Accept-Encoding` swapped, gzip is 257 us and `br` 508 us -- and
the `br` arm takes 72.43 minor faults per request, the encoder's ~700 KB of
state being returned to the kernel and re-faulted between requests. The
library's `master` removes that churn (`0aaa415`, one commit past this pin),
which takes `br` to 385 us; 385 against 257 is still 1.5x, and `br` only
buys `(1429.2 / 1288.4)^2 = 1.23` on the byte term that the profile scores.
So it is a net loss on the only term it can move.

Nothing else is given up. `Accept-Encoding` is still honoured per request;
every client here that offers `br` also accepts gzip (`gzip, br` on
json-comp, `br;q=1, gzip;q=0.8` on the h2 and h3 generators); the static
legs' `.br` twins are chosen at runtime by
`http_pick_precompressed_variants()` and are unaffected by this flag; and
the profile's own guide asks for what it now gets -- its `standard=` rule
wants "the framework or engine's built-in response compression (middleware,
filter, or equivalent)", its `tuned=` rule only adds "as long as the output
is valid gzip or brotli", and the worked example under "Expected response"
answers a request that carried `Accept-Encoding: gzip, br` with
`Content-Encoding: gzip`. Brotli appears in the page's title; no rule there
prefers it.

`frameworks/libuvcpp/{Dockerfile,README.md,meta.json}` carry the flag, the
two package drops and the rationale; `site/data/frameworks.json` is
`scripts/rebuild_site_data.py` re-run over the new `meta.json`. The pin is
unchanged at `02ae418`, so this is one variable against the sixth run.
`uvcpp_static_server` defaults to `uvcpp_static_revalidate::POOL`, so every
`static-h3` request queued to the libuv thread pool, woke a worker, ran the
`stat` that decides whether the cached file is still good, and came back
through `after_work`. The h1 and h2 static legs have been on `LOOP_STAT`
since `af3b4fc` -- they get it through `kStaticOpts.revalidate` -- but this
leg is a plain `uvcpp_http_server` with no `uvcpp_web_static_options` to
receive it, so it never got the choice at all. It is one line here.

Measured on the entry built twice, one line apart, same library, same ext4
corpus, the profile's own URIs and the profile's own `Accept-Encoding:
br;q=1, gzip;q=0.8` (`--alpn-list=h3 -c 64 -m 64 -t 8 -D 5s`, three reps a
side, interleaved, server on 8 cores and the generator on 8 disjoint ones):

  rps      29 434 -> 38 280      (rep range 29 129-30 454 against
                                  33 855-42 360 -- even the worst `loopstat`
                                  rep beats the best `pool` one)
  us/req      216.8 -> 193.3

The mechanism is the library's `doc/benchmark.md` section 4.8, which ran the
same A/B on the same `uvcpp_static_server`: `futex`/req 6.28 -> 0.66, with
`statx`/req 2.24 -> 2.24 as the control -- the mtime/size check still happens
on every request, only the thread it happens on moved. Tail latency improved
there as well (p50 63 661 -> 56 896 us, p99 170 526 -> 140 458 us).

That tail latency is the risk this option carries, and the reason the
library default stays `POOL`: on a FUSE or network mount one `stat` is ~46 us
and blocking a loop thread on it -- which on this leg also carries QUIC's own
timers and retransmits -- is the wrong trade. The platform bind-mounts the
dataset into the container (`scripts/lib/framework.sh`), so this leg is on
the same local disk the h1/h2 legs are already doing this on.

The pin is unchanged by this commit, which is one variable on its own; the
pin move is the commit after it, so the next run carries both.
The pin is the tip of the library's `master` as of now. Two of the three
commits change code and one is documentation (`b7cae85`, the sixth run's
readings), and neither of the two touches a public header -- `git diff --stat
02ae418..1f6a8fb -- include/ 'src/**/*.h'` is empty -- so the entry needs no
code change for it.

`0aaa415` gives the brotli encoder the ~700 KiB of state it needs per request
out of a thread-local arena instead of the heap. brotli has no
`BrotliEncoderReset()`, so that state was created and destroyed on every
request, two of its blocks are 256 KiB, and those are above glibc's 128 KiB
threshold, so `free` handed them back to the kernel for the next request to
fault in again: `72.43 -> 0.00` minor faults per request and `508 -> 385` us of
CPU per request on the local `br` arm, with a gzip arm as the negative control
(`+0.8%`, no faults either way) and compressed bytes bit-for-bit identical.
This build cannot be moved by any of it: the arena, the encoder call and the
frame in between all sit under `#if UVCPP_BROTLI_ENABLE` in
`src/web/uvcpp_http_compress.cpp`, and this entry passes
`-DUVCPP_ENABLE_BROTLI=OFF`. It comes along because a pin is a commit and not a
patch list.

`1f6a8fb` moves the two tables behind the static handler's `LOOP_STAT` cache
lookup to a front copy per loop, so the thread that reads them is the thread
that wrote them. Before it every loop read the global tables under one shared
lock, and at `1 / held` that lock admitted 240 000-270 000 requests a second --
the order the board's `static-h2` rows sit at (~235 000) while the same round's
`json-tls-4096` spends 63.3 cores at a lower per-request cost, so the static
profiles were short of parallelism and not of work. The counters, A B B A on
one entry binary with only the `.so` swapped: `mutex_lock` per request
`2.03 / 2.04 -> 0.03 / 0.02`, time held `3 679 / 4 171 -> 969 / 1 259` ns, time
waiting `7 761 / 9 368 -> 183 / 239` ns; `collect_hints()` disappears from the
per-call-site table and `lookup_cache()` falls to 0.0041 per request. The local
end-to-end moved `+19.6%` (109 997 -> 131 608 req/s, two interleaved rounds on
9 cores with the generator on the same machine), which is offered as direction
only. This is the h1/h2 static handler; the h3 leg goes through
`uvcpp_static_server` and does not take this path.

README: the pin is now twelve commits past `v1.7.0`, not three. That sentence
was written when the pin was `8150720` and was not updated by the `02ae418`
move (`git rev-list --count v1.7.0..1f6a8fb` is 12).

Both criteria are local deterministic counters measured against the previous
revision; neither is offered as a predicted board movement.
The h3 commit and this branch's `main.cc` comment both cited `af3b4fc` for when
the h1/h2 static legs started validating the static cache on the loop thread
instead of through the pool. `af3b4fc` is where the two lines
(`o.precompressed = true`, `o.revalidate = uvcpp_web_revalidate::LOOP_STAT`)
entered this branch's history -- PR MDA2AV#1553 brought the gateway work in -- but
they were not introduced there: `git log -S 'o.revalidate' --all --
frameworks/libuvcpp/main.cc` names `7095e92`, "Validate the static cache on the
loop thread instead of through the pool" (2026-10-14), and `7095e92` is an
ancestor of `ae437de`, the tree the fourth run measured and which carries both
lines at `main.cc:196` and `:211`. So the legs have been on it since `7095e92`;
`main.cc` now says so, and the Dockerfile says both.

No behaviour change: `main.cc` differs by one SHA inside a comment.
@Antruly

Antruly commented Oct 16, 2026

Copy link
Copy Markdown
Contributor Author

/benchmark -f libuvcpp --save

Three changes on top of the sixth run's tree, all of them measured on this machine before asking for a run.

  1. The entry builds the brotli encoder back out (16cba4a). The sixth run negotiated br on /json/{count}; brotli's per-response cost on this framework was well above gzip's, which is why those rows collapsed. The json-comp-* profiles should come back to gzip-level throughput. That part is a revert of one variable rather than a new optimization, and the byte term those profiles are scored on goes back to gzip's with it.

  2. The h3 static leg now validates its cache on the loop thread (ea38462). It is a separate implementation (uvcpp_static_server) from the h1/h2 one (uvcpp_web_app), so the option the h1/h2 legs have carried since the fourth run had never been set on it, and every static-h3-64 request was paying a thread-pool round trip to check mtime and size. On this machine's h3 rig, that one line apart with everything else equal: 29 434 -> 38 280 req/s and 216.8 -> 193.3 us per request, the two arms' ranges not overlapping.

  3. The pin moves to 1f6a8fb (1.7.2-dev), three commits past the one the sixth run carried. It puts the static handler's cache lookup on a front copy per loop instead of the table behind a lock that every loop shares. Counters on one binary with only the shared object swapped: mutex acquisitions per request 2.03 -> 0.03, hold time 3.7-4.2 us -> 1.0-1.3 us. That is the h1/h2 static handler; the h3 leg goes through the other one and does not take this path. The other two commits in that range are a documentation one and the brotli-arena one, which this entry now compiles out.

No public header changed between the old pin and the new one, so the pin move needed no code change; the main.cc difference in this PR is the h3 line.

@github-actions

Copy link
Copy Markdown
Contributor

👋 Benchmark request received. A collaborator will review and approve the run.

@github-actions

Copy link
Copy Markdown
Contributor

Benchmark Results

Framework: libuvcpp | Test: all tests

Test Conn RPS Rate CPU/req p99 p99.9 CPU Mem Δ RPS Δ Mem
baseline 4096 1,732,068 — — — — 6322.2% 140MiB +5.7% +0.7%
pipelined 4096 7,502,178 — — — — 6335.2% 149MiB +10.6% +0.7%
limited-conn 4096 1,414,686 — — — — 6295.6% 92MiB +8.0% -8.9%
json-comp 4096 199,935 — — — — 6273.8% 114MiB -38.6% -5.0%
json-comp 16384 197,549 — — — — 6099.2% 120MiB -38.5% -25.9%
json-tls 4096 399,878 — — — — 6527.5% 662MiB -40.5% +67.2%
8gbit 512 49,306 0.9861 65.52us 149.0us 5482.0us 300.5% 208MiB +0.3% +62.5%
static-tls 1024 568,833 — — — — 6466.9% 274MiB +199.2% -1.4%
async-db 1024 86,449 — — — — 3388.5% 176MiB +3.1% -8.3%
baseline-h2 256 5,304,166 — — — — 6114.1% 96MiB +17.9% -13.5%
baseline-h2 1024 5,327,411 — — — — 6158.9% 172MiB +13.6% -3.4%
static-h2 256 802,360 — — — — 6439.5% 245MiB +236.0% +29.6%
static-h2 1024 547,363 — — — — 6422.8% 659MiB +125.8% -16.9%
baseline-h2c 256 5,550,996 — — — — 6072.9% 83MiB +14.4% +1.2%
baseline-h2c 1024 5,280,019 — — — — 6328.3% 160MiB +13.1% -2.4%
baseline-h2c 4096 5,031,650 — — — — 6417.7% 798MiB +7.0% -1.6%
json-h2c 1024 655,129 — — — — 6422.9% 303MiB -56.2% +1.7%
json-h2c 4096 639,897 — — — — 6432.8% 1016MiB -57.0% +3.4%
baseline-h3 64 3,077,350 — — — — 3656.2% 133MiB +163.7% -44.1%
static-h3 64 239,028 — — — — 4193.0% 302MiB +109.3% -36.0%
gateway-64 512 199,358 — — — — 5431.8% 1.5GiB +162.7% -40.0%
gateway-64 1024 196,673 — — — — 5245.2% 1.8GiB +186.5% -62.5%
gateway-h3 64 83,510 — — — — 3796.8% 431MiB -0.8% +10.5%
gateway-h3 256 61,721 — — — — 2954.5% 1.4GiB -1.3% -6.7%
production-stack 256 256,484 — — — — 4827.6% 1.2GiB +377.8% +27.7%
production-stack 1024 208,224 — — — — 4292.0% 2.0GiB +350.0% -28.6%
unary-grpc 256 3,798,244 — — — — 6222.9% 148MiB +12.0% +2.1%
unary-grpc 1024 3,667,663 — — — — 6346.3% 423MiB +12.4% +2.7%
unary-grpc-tls 256 3,681,783 — — — — 6185.2% 163MiB +12.0% -1.2%
unary-grpc-tls 1024 3,444,335 — — — — 6441.0% 520MiB +11.4% -13.0%
echo-ws 512 2,849,239 — — — — 6733.9% 77MiB +3.5% -2.5%
echo-ws 4096 2,838,290 — — — — 6414.9% 132MiB -0.2% +1.5%
echo-ws 16384 2,565,508 — — — — 6604.4% 335MiB +1.9% -0.9%
echo-ws-pipeline 512 30,670,502 — — — — 6642.9% 78MiB +2.1% -1.3%
echo-ws-pipeline 4096 29,440,675 — — — — 6798.7% 137MiB +1.7% -0.7%
echo-ws-pipeline 16384 28,115,031 — — — — 6196.7% 350MiB +11.7% -2.0%
echo-ws-limited 512 1,574,604 — — — — 6025.8% 92MiB +1.5% +2.2%
echo-ws-limited 4096 1,778,136 — — — — 6289.9% 94MiB ~0% -3.1%
latency-1m 1024 997,811 0.9978 40.03us 329.0us 6018.0us 4125.5% 81MiB ~0% ~0%
latency-10k 1024 9,980 0.9980 37.34us 119.0us 178.0us 35.7% 77MiB ~0% ~0%
latency-500k-8cpu 1024 260,201 0.5204 ⚠️ 30.65us 10104832.0us 10522624.0us 779.3% 33MiB +6.2% +3.1%
async 32000 1,541,917 — — — — 6138.9% 488MiB +1.9% -0.4%
Full log
  "duration_s": 20.002,
  "requests": 199640,
  "bytes": 31143840,
  "achieved_rate": 9980.90,
  "target_rate": 10000,
  "target_rate_end": 10000,
  "rate_ratio": 0.9981,
  "bytes_per_sec": 1557021.12,
  "error_rate": 0.000000,
  "max_schedule_lag_us": 0,
  "latency_us": {
    "min": 37, "mean": 84.9, "stdev": 571.5, "max": 39775,
    "p50": 68, "p75": 77, "p90": 100, "p99": 122, "p99_9": 175, "p99_99": 32600
  },
  "status_codes": { "1xx": 0, "2xx": 199640, "3xx": 0, "4xx": 0, "5xx": 0 },
  "errors": { "connect": 0, "read": 0, "write": 0, "timeout": 0, "deadline": 0, "non_2xx_3xx": 0 },
  "latency_histogram": "HISTFAAAAhd4nC1PXUiTYRj9nrN3P9+3P20tnZuhaaiNrUzWoi7GoAiJJiWjKPojysAguijyypS1zH4gNiqobJkXJmmjIrqQiJCw3RQhEmEXQcQuQoaEjK46TN+X9/k9zznPG0hlPJqGA9rKMa16qSSZa1qstFLoVArQXFvPPJSylCSNP/IeU+qv+2Vo+lDhqrx7IGNZGR2Qcl+uZyiZ312Mze8a7sod+31u8NLty0sXUmeXD6cT4/FcZCb8MfimdSh4ZdN8y8KGpfqJups1Zc+iK+385Rh3jNpf22eNf8Zbo6SXbXPWD9av1hFjxrW8Nl/33TfonfVkPUX3F8dde8q4b3zTJ/SsXrBNWfOWrHlYFZHHc6RQkAWZk0WZljEZkROJRHh7a3OgtWF9Q/OOcDiwZZvLZnPUGlVVRu0aBWWx2ByWdYbSlIMxoKDR2FExQezDRkwKbgBPBU+Ezc8m9OOHqP24ZcMjM34K4tiMFoRwEo8VBoRDUTThE9CGXnSweQpJviO4A7wQZYaVPHsJ64QHx7EHbo724SK87DwTVPPWc/g06Ey4LnT98KseEK2zovEm+UKUaeSq1Owl4U6iqknpxT1BDE5kBGx04yjOw0d8ByKAmd/yUCjOghPtFDdxe4bdqEw3UcLO6JUi2oyDlaSGOk4C/egiSyNHo6yaCG1TEfqoamfuJZmfliP+ypIh6uirv/GxqpM/hv/yCnrK"
}
[info] CPU 39.1% | Mem 79MiB
[info] run 2 wins on score

=== Best: 9980 req/s (CPU: 35.7%, Mem: 77MiB) ===
[info] exact CPU: 7.45 core-seconds | 37.344 us/req
=== Fixed-rate: cpu/req 37.34us | p99 119.0us | p99.9 178.0us | rate_ratio 0.9980 ===
[info] saved results/latency-10k/1024/libuvcpp.json
httparena-bench-libuvcpp
httparena-bench-libuvcpp

==============================================
=== libuvcpp / latency-500k-8cpu / 1024c (tool=zrk) ===
==============================================
[info] waiting for server...
[info] server ready

[run 1/3]
{
  "zrk_version": "2.3.0",
  "target": { "url": "http://localhost:8080/baseline11?a=1&b=2", "method": "GET" },
  "config": { "connections": 1024, "launched": 1024, "duration_s": 20.000, "closed": false, "target_rate": 500000, "timeout_ms": 2000, "deadline_ms": 0, "deadline_abort": false, "record_timeouts": true },
  "duration_s": 20.006,
  "requests": 5196144,
  "bytes": 810598464,
  "achieved_rate": 259728.63,
  "target_rate": 500000,
  "target_rate_end": 500000,
  "rate_ratio": 0.5195,
  "bytes_per_sec": 40517666.34,
  "error_rate": 0.000000,
  "max_schedule_lag_us": 11431298,
  "latency_us": {
    "min": 51, "mean": 4753963.0, "stdev": 2776154.9, "max": 11444223,
    "p50": 4712448, "p75": 7055360, "p90": 8458240, "p99": 10481664, "p99_9": 11268096, "p99_99": 11374592
  },
  "status_codes": { "1xx": 0, "2xx": 5196144, "3xx": 0, "4xx": 0, "5xx": 0 },
  "errors": { "connect": 0, "read": 0, "write": 0, "timeout": 0, "deadline": 0, "non_2xx_3xx": 0 },
  "latency_histogram": "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"
}
[info] CPU 774.4% | Mem 32MiB

[run 2/3]
{
  "zrk_version": "2.3.0",
  "target": { "url": "http://localhost:8080/baseline11?a=1&b=2", "method": "GET" },
  "config": { "connections": 1024, "launched": 1024, "duration_s": 20.000, "closed": false, "target_rate": 500000, "timeout_ms": 2000, "deadline_ms": 0, "deadline_abort": false, "record_timeouts": true },
  "duration_s": 20.008,
  "requests": 5203795,
  "bytes": 811792020,
  "achieved_rate": 260090.76,
  "target_rate": 500000,
  "target_rate_end": 500000,
  "rate_ratio": 0.5202,
  "bytes_per_sec": 40574158.91,
  "error_rate": 0.000000,
  "max_schedule_lag_us": 10692686,
  "latency_us": {
    "min": 51, "mean": 4737695.8, "stdev": 2789843.8, "max": 10698751,
    "p50": 4675584, "p75": 7022592, "p90": 8638464, "p99": 10145792, "p99_9": 10579968, "p99_99": 10653696
  },
  "status_codes": { "1xx": 0, "2xx": 5203795, "3xx": 0, "4xx": 0, "5xx": 0 },
  "errors": { "connect": 0, "read": 0, "write": 0, "timeout": 0, "deadline": 0, "non_2xx_3xx": 0 },
  "latency_histogram": "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"
}
[info] CPU 779.7% | Mem 32MiB

[run 3/3]
{
  "zrk_version": "2.3.0",
  "target": { "url": "http://localhost:8080/baseline11?a=1&b=2", "method": "GET" },
  "config": { "connections": 1024, "launched": 1024, "duration_s": 20.000, "closed": false, "target_rate": 500000, "timeout_ms": 2000, "deadline_ms": 0, "deadline_abort": false, "record_timeouts": true },
  "duration_s": 20.007,
  "requests": 5205921,
  "bytes": 812123676,
  "achieved_rate": 260201.25,
  "target_rate": 500000,
  "target_rate_end": 500000,
  "rate_ratio": 0.5204,
  "bytes_per_sec": 40591395.05,
  "error_rate": 0.000000,
  "max_schedule_lag_us": 10638700,
  "latency_us": {
    "min": 53, "mean": 4731018.6, "stdev": 2786400.8, "max": 10649599,
    "p50": 4675584, "p75": 7010304, "p90": 8622080, "p99": 10104832, "p99_9": 10522624, "p99_99": 10596352
  },
  "status_codes": { "1xx": 0, "2xx": 5205921, "3xx": 0, "4xx": 0, "5xx": 0 },
  "errors": { "connect": 0, "read": 0, "write": 0, "timeout": 0, "deadline": 0, "non_2xx_3xx": 0 },
  "latency_histogram": "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"
}
[info] CPU 779.3% | Mem 33MiB
[info] run 3 wins on score

=== Best: 260201 req/s (CPU: 779.3%, Mem: 33MiB) ===
[info] exact CPU: 159.57 core-seconds | 30.652 us/req
=== Fixed-rate: cpu/req 30.65us | p99 10104832.0us | p99.9 10522624.0us | rate_ratio 0.5204 ===
[warn] offered rate fell short: rate_ratio=0.5204 (target 500000/s)
[warn]   the CPU number is not comparable with runs that held the rate
[info] saved results/latency-500k-8cpu/1024/libuvcpp.json
httparena-bench-libuvcpp
httparena-bench-libuvcpp

==============================================
=== libuvcpp / async / 32000c (tool=gcannon) ===
==============================================
[info] waiting for server...
[info] server ready

[run 1/3]
gcannon v0.5.3
  Target:    localhost:8080/
  Threads:   64
  Conns:     32000 (500/thread)
  Pipeline:  1
  Req/conn:  unlimited (keep-alive)
  Expected:  200
  Duration:  10s


  Thread Stats   Avg      p50      p90      p99    p99.9
    Latency   20.79ms   21.60ms   23.90ms   26.50ms   65.10ms

  14220463 requests in 10.00s, 14188463 responses
  Throughput: 1.42M req/s
  Bandwidth:  212.40MB/s
  Status codes: 2xx=14188463, 3xx=0, 4xx=0, 5xx=0
  Latency samples: 14188463 / 14188463 responses (100.0%)
[info] CPU 5192.4% | Mem 493MiB

[run 2/3]
gcannon v0.5.3
  Target:    localhost:8080/
  Threads:   64
  Conns:     32000 (500/thread)
  Pipeline:  1
  Req/conn:  unlimited (keep-alive)
  Expected:  200
  Duration:  10s


  Thread Stats   Avg      p50      p90      p99    p99.9
    Latency   19.78ms   20.10ms   21.50ms   22.40ms   23.10ms

  15451171 requests in 10.00s, 15419171 responses
  Throughput: 1.54M req/s
  Bandwidth:  230.83MB/s
  Status codes: 2xx=15419171, 3xx=0, 4xx=0, 5xx=0
  Latency samples: 15419171 / 15419171 responses (100.0%)
[info] CPU 6138.9% | Mem 488MiB

[run 3/3]
gcannon v0.5.3
  Target:    localhost:8080/
  Threads:   64
  Conns:     32000 (500/thread)
  Pipeline:  1
  Req/conn:  unlimited (keep-alive)
  Expected:  200
  Duration:  10s


  Thread Stats   Avg      p50      p90      p99    p99.9
    Latency   19.99ms   20.20ms   21.70ms   22.80ms   23.70ms

  15360434 requests in 10.00s, 15328434 responses
  Throughput: 1.53M req/s
  Bandwidth:  229.47MB/s
  Status codes: 2xx=15328434, 3xx=0, 4xx=0, 5xx=0
  Latency samples: 15328434 / 15328434 responses (100.0%)
[info] CPU 6212.0% | Mem 490MiB

=== Best: 1541917 req/s (CPU: 6138.9%, Mem: 488MiB) ===
[info] input BW: 70.58MB/s (avg template: 48 bytes)
[info] saved results/async/32000/libuvcpp.json
httparena-bench-libuvcpp
httparena-bench-libuvcpp
[info] rebuilding site/data/*.json
[updated] /home/diogo/actions-runner/_work/HttpArena/HttpArena/site/data/frameworks.json
[updated] /home/diogo/actions-runner/_work/HttpArena/HttpArena/site/data/results/libuvcpp.json - 42 new, 42 total
[updated] /home/diogo/actions-runner/_work/HttpArena/HttpArena/site/data/current.json
[info] done
httparena-postgres
[info] restoring loopback MTU to 65536

The seventh run carried `1f6a8fb` and its own regression is what this batch
answers: `echo-ws-pipeline-4096` came back `-6.8%` in rate and `+13.8%` in CPU
per request, the largest single-profile regression in that round.

  * `239fef0` moves the buffer allocator's free list out of the blocks and into
    per-thread tables. The family serves 1-7 byte blocks, and the old scheme put
    the "next block" pointer in the block's first 8 bytes, so a block smaller
    than that could never be cached -- four blocks per WebSocket echo message
    went to `malloc` every time and none was ever reused. Message-allocations per
    message `11.255 -> 6.255` at `PIPE=1`, `3.692 -> 0.567` at `PIPE=16`, and
    `0.775 -> 0.730` us per message end to end at `PIPE=16`.
  * `2872c20` gives the TCP read buffer a per-thread table of exact-size slots,
    so a `pipeline = 1` profile no longer costs a 64 KiB `malloc`/`free` pair per
    request. callgrind on this entry: `/json/50?m=6` `-16.57%` instructions,
    `/baseline11` `-1.36%`; end to end `-14.1%` on `/json/50?m=6`, `-8.9%` on the
    h2c leg, `baseline11` neutral.

`239fef0` changes the layout of `uvcpp_malloc_block_cache` in the public
`uvcpp_alloc.h`, but the entry does not include that header, so no entry-side
change comes with it. Full criteria, the rigs and the A/B readings are in the
library's `doc/benchmark.md` §4.19 and §4.20 and in each commit's message.
…kend

The pin moves to `134f34d`, the tip of the library's `master`, and it moves
for this one thing: `a063645` gives the library's yyjson module a
construction side and a write-back through yyjson's own serializer, and
without it the handlers below cannot exist. The same range carries two
other things. `638512b` takes three copies off the h1 dynamic hot path in
the library -- a library-side change, so not a like-for-like factor on this
entry's h1 rows against the seventh run's -- and the library's fourth
database backend (`1607dff`, ODBC, PR MDA2AV#36) lands with its CI and packaging,
which is off in the flag set here.

The two JSON handlers no longer build an `nlohmann::json` DOM per request.
They build a `uvcpp_json_builder` tree and hand it to `uvcpp_json_write`,
which is yyjson's own serializer (`yyjson_mut_val_write_buf`), and those
bytes go to `resp.json_str()` by move exactly as before. The dataset is
parsed once at startup by `uvcpp_json_parse` instead of being held as an
`nlohmann::json`; that parse happens before the first request is accepted,
so it is in neither measurement below.

**The response bytes did not change.** Same library, two `main.cc`, 17 URLs
-- `/json/0` through `/json/50` with and without `m`, `count` past the end
of the dataset, one negative `count`, one `m` of a million, and five
`/async-db` ranges against the seeded Postgres: every body `cmp`-equal,
every status line identical, every `Content-Type` identical. That criterion
is what makes this safe to ship, and it is not free. A builder keeps
insertion order where the DOM path got sorted order for nothing from
`std::map`, so the key order is spelled out in the code; and the nested
`rating` object is rebuilt key by key, because the data file lists it
`score, count` while the response has always answered `count, score`.
Getting either wrong would have been a silently different body, not a
crash.

Measured on the local rig, one server binary per arm, only `main.cc`
swapped, arms alternating over four rounds, the client at the shape these
profiles actually use -- `-c 1024 -m 1`, because `scripts/lib/profiles.sh`
has `json-comp`, `json-tls` and `async-db` at pipeline 1, and a depth past
the library's documented per-connection in-flight cap answers `503` (a
sweep of `-m` 1/2/4/8/16/32 gave 0/0/0/0/12 336/11 096 of them):

  `/json/50?m=6`     228.60 -> 125.31 us of CPU per request
                      60 350 ->  89 605 req/s
                      (four-round ranges 228.60-303.57 against
                       125.31-156.23 us -- they do not overlap)

  `/async-db`
  `min=1&max=500&limit=20`
                     258.62 -> 158.95 us
                      30 794 ->  41 120 req/s
                      (258.62-319.94 against 158.95-194.29)

Both arms answered zero non-2xx in every round. Both arms also run the same
library, so `638512b` and the ODBC batch are held constant and are in
neither column.

The compliance argument is that this is the framework's own bundled
backend, not an entry-side substitution. `standard.md` requires a
production-grade library where the ecosystem has one and forbids hand-rolled
alternatives built for the benchmark, with one exception -- "If the
framework itself bundles or officially recommends a specific library, that
library is acceptable" -- and yyjson is a library this framework bundles:
all six release legs pass `-DUVCPP_ENABLE_YYJSON=ON` in their package
builds, so this is the released library's own configuration. The entry
takes it by turning that flag on rather than by adding a dependency. What
the entry does *not* do is reach into yyjson directly: it goes through
`uvcpp_json_parse` / `uvcpp_json_builder` / `uvcpp_json_write`, so main.cc
does not include `<yyjson.h>` and would not notice if the backend under
those three names changed.

`UVCPP_ENABLE_DB_ODBC=OFF` is stated in the flag set rather than left to
the default, and the default is the reason: it is ON at this pin and needs
`sql.h` plus a driver manager. CMake would force it off itself and say so
in a configure-time warning, but a flag set that names it is one whose
result does not depend on what the image happens to have installed.

README.md and meta.json follow the change, and the Dockerfile's comments
say why the pin moved, what the criterion was, and what the two arms
measured.

Verified before the push: the four CI legs on `134f34d` (Linux, macOS,
MSVC, MinGW-w64) are green; the yyjson FetchContent path (tag 0.13.0) and a
`--depth 1` fetch of the pin SHA both reproduce; and the whole entry was
prevalidated locally against the same tree -- h2c/json-h2c/grpc/h1 15
assertions pass, `baseline-h2` 3 395 100 requests, `baseline-h3` 1 777 674,
`static-h2` 46 413, `static-h3` 53 271, `gateway-64` 54 200, `gateway-h3`
46 909, all with zero 4xx and zero 5xx, the 12 gateway assertions and the
15 production-stack assertions pass, and the h3 legs' own `json` body
assertion reads back count and item count correctly from the new writer's
output.
@Antruly

Antruly commented Oct 16, 2026

Copy link
Copy Markdown
Contributor Author

/benchmark -f libuvcpp --save

The pin moves to 134f34d (the tip of the library's master when it was taken) and the JSON profiles now serialize through the framework's bundled yyjson backend. Everything below was measured on this machine, and the whole entry was prevalidated locally, before asking for a run.

What this answers. The review here on 2026-10-15 was that this entry needs "a proper json parser (for example nlohmann/json) for tests that do json serialization". All three JSON routes went to nlohmann at that point, which was the safe answer and cost what it cost. This is the same requirement met by the other route the framework offers, and it is the reason for the pin move: a063645 gives the library's yyjson module a construction side and a write-back through yyjson's own serializer (yyjson_mut_val_write_buf), so the entry builds a uvcpp_json_builder tree and hands it to uvcpp_json_write. yyjson is the serializer now; there is nothing hand-rolled anywhere in the path, and the flattened-dataset pre-read and the writer's self-check stay deleted.

Why this is not the thing that was objected to. yyjson is a third-party production library that this framework bundles — all six release legs pass -DUVCPP_ENABLE_YYJSON=ON in their package builds, so it is part of the released library's own configuration rather than an entry-side addition. It is also reached only through the library's published API: main.cc takes uvcpp_json_parse, uvcpp_json_builder and uvcpp_json_write from <yyjson/uvcpp_json_doc.h> and does not include <yyjson.h>, so it would not notice if the backend behind those three names changed. standard.md forbids "experimental or hand-rolled alternatives solely for benchmark performance" and carves out exactly this case — "If the framework itself bundles or officially recommends a specific library, that library is acceptable". The entry takes it by turning a build flag on, not by adding a dependency. nlohmann::json is still what the /api/* routes answer with, and those are untouched; the dataset is now parsed once at startup by uvcpp_json_parse instead of being held as an nlohmann::json, which happens before the first request is accepted.

The response bytes did not change. Last time the comparison had to be after canonicalisation, because the swap changed top-level key order. This time it is a byte comparison and it passes: same library, two main.cc, 17 URLs — /json/0 through /json/50 with and without m, a count past the end of the dataset, a negative count, an m of a million, and five /async-db ranges against the seeded Postgres — every body cmp-equal, every status line identical, every Content-Type identical. That took work rather than being free: a builder keeps insertion order where nlohmann's object sorted itself, so the key order is spelled out in the code, and the nested rating object is rebuilt key by key because the data file lists it score, count while the response has always answered count, score. Either mistake would have been a silently different body.

Measured. One server binary per arm, only main.cc swapped, arms alternating over four rounds, client at the shape these profiles actually use (-c 1024 -m 1; scripts/lib/profiles.sh has json-comp, json-tls and async-db at pipeline 1, and a depth past the library's per-connection in-flight cap answers 503 — a sweep of -m 1/2/4/8/16/32 gave 0/0/0/0/12 336/11 096 of them, so this is also the reason the rig changed shape from the last round's):

  • /json/50?m=6: 228.60 -> 125.31 us of CPU per request, 60 350 -> 89 605 req/s (four-round ranges 228.60-303.57 against 125.31-156.23 us — they do not overlap)
  • /async-db min=1&max=500&limit=20: 258.62 -> 158.95 us, 30 794 -> 41 120 req/s (258.62-319.94 against 158.95-194.29)

Both arms answered zero non-2xx in every round. Both arms run the same library, so 638512b and the ODBC batch below are held constant and are in neither column.

What else is in the pin. Three things, and only the first is this change's:

  1. a063645 — the construction side and the yyjson serializer, i.e. the reason for the move.
  2. 638512b — three copies off the h1 dynamic hot path in the library itself (-11.03% user-mode instructions per request on the library's own callgrind rig; the commit sizes it at -3 to -4% end to end and does not claim it as a board movement). The entry does not ask for this one and cannot hold it constant against the seventh run: it rides in the pin, so the h1 rows of this run are not like-for-like with that run's by that much, on top of whatever the JSON change does.
  3. The library's fourth database backend (ODBC, its PR docs: clean up README #36) lands in the same range with its CI and packaging. It is stated off in the flag set — its option defaults ON and needs sql.h plus a driver manager; CMake would force it off itself and warn, but the flag set names it so the result does not depend on what the image happens to have.

UVCPP_ENABLE_YYJSON=ON is added to the flag set next to the other backends, and the Dockerfile's pin paragraph is rewritten to say why the pin moved, what the criterion was and what the arms measured. README.md and meta.json follow.

Checked before asking. The four CI legs on 134f34d (Linux, macOS, MSVC, MinGW-w64) are green; the yyjson FetchContent path and a --depth 1 fetch of the pin SHA both reproduce from scratch; and the entry was prevalidated locally against this tree with the harness's own checks — h2c / json-h2c / grpc / h1 15 assertions pass (including the /json body assertion, which reads count and item count back out of the new writer's output), baseline-h2 3 395 100 requests, baseline-h3 1 777 674, static-h2 46 413, static-h3 53 271, gateway-64 54 200, gateway-h3 46 909, all with zero 4xx and zero 5xx, plus the 12 gateway assertions and the 15 production-stack assertions.

@github-actions

Copy link
Copy Markdown
Contributor

👋 Benchmark request received. A collaborator will review and approve the run.

@github-actions

Copy link
Copy Markdown
Contributor

Benchmark Results

Framework: libuvcpp | Test: all tests

Test Conn RPS Rate CPU/req p99 p99.9 CPU Mem Δ RPS Δ Mem
baseline 4096 1,802,593 — — — — 6284.8% 139MiB +10.0% ~0%
pipelined 4096 7,848,400 — — — — 6474.9% 150MiB +15.7% +1.4%
limited-conn 4096 1,480,567 — — — — 6296.5% 86MiB +13.0% -14.9%
json-comp 4096 285,759 — — — — 6234.1% 111MiB -12.2% -7.5%
json-comp 16384 291,220 — — — — 6503.1% 152MiB -9.3% -6.2%
json-tls 4096 619,671 — — — — 6361.6% 406MiB -7.8% +2.5%
8gbit 512 49,340 0.9868 67.18us 147.0us 6130.0us 309.1% 209MiB +0.3% +63.3%
static-tls 1024 571,215 — — — — 6554.2% 273MiB +200.5% -1.8%
async-db 1024 95,435 — — — — 2796.2% 185MiB +13.8% -3.6%
baseline-h2 256 5,501,093 — — — — 6319.2% 110MiB +22.3% -0.9%
baseline-h2 1024 5,430,750 — — — — 6284.9% 172MiB +15.8% -3.4%
static-h2 256 806,684 — — — — 6459.0% 240MiB +237.8% +27.0%
static-h2 1024 550,039 — — — — 6240.6% 507MiB +126.9% -36.1%
baseline-h2c 256 5,889,601 — — — — 6197.9% 81MiB +21.4% -1.2%
baseline-h2c 1024 5,709,089 — — — — 6424.8% 164MiB +22.3% ~0%
baseline-h2c 4096 5,489,431 — — — — 6391.8% 766MiB +16.7% -5.5%
json-h2c 1024 1,187,769 — — — — 6357.1% 332MiB -20.6% +11.4%
json-h2c 4096 1,130,987 — — — — 6187.0% 1.3GiB -23.9% +35.4%
baseline-h3 64 3,239,525 — — — — 3752.8% 103MiB +177.6% -56.7%
static-h3 64 238,175 — — — — 4207.0% 475MiB +108.5% +0.6%
gateway-64 512 240,386 — — — — 5635.2% 1.5GiB +216.8% -40.0%
gateway-64 1024 233,849 — — — — 5998.6% 2.0GiB +240.6% -58.3%
gateway-h3 64 84,759 — — — — 3578.1% 415MiB +0.7% +6.4%
gateway-h3 256 62,533 — — — — 2792.4% 1.4GiB ~0% -6.7%
production-stack 256 256,279 — — — — 4765.6% 1.2GiB +377.4% +27.7%
production-stack 1024 208,500 — — — — 4284.8% 2.0GiB +350.6% -28.6%
unary-grpc 256 3,837,633 — — — — 6228.5% 173MiB +13.2% +19.3%
unary-grpc 1024 3,600,218 — — — — 6352.8% 428MiB +10.3% +3.9%
unary-grpc-tls 256 3,664,147 — — — — 6168.1% 165MiB +11.5% ~0%
unary-grpc-tls 1024 3,517,793 — — — — 6142.2% 591MiB +13.8% -1.2%
echo-ws 512 2,892,280 — — — — 6512.2% 79MiB +5.1% ~0%
echo-ws 4096 3,007,035 — — — — 6314.7% 131MiB +5.7% +0.8%
echo-ws 16384 2,673,301 — — — — 6159.0% 329MiB +6.2% -2.7%
echo-ws-pipeline 512 33,213,203 — — — — 6810.3% 78MiB +10.6% -1.3%
echo-ws-pipeline 4096 32,736,147 — — — — 6337.8% 135MiB +13.1% -2.2%
echo-ws-pipeline 16384 29,129,603 — — — — 6193.9% 348MiB +15.7% -2.5%
echo-ws-limited 512 1,633,110 — — — — 5850.3% 85MiB +5.3% -5.6%
echo-ws-limited 4096 1,832,895 — — — — 6204.7% 93MiB +3.1% -4.1%
latency-1m 1024 997,805 0.9978 38.30us 312.0us 977.0us 4179.8% 82MiB ~0% +1.2%
latency-10k 1024 9,981 0.9981 38.27us 120.0us 433.0us 36.7% 79MiB ~0% +2.6%
latency-500k-8cpu 1024 271,901 0.5438 ⚠️ 29.33us 9293824.0us 9654272.0us 778.7% 32MiB +11.0% ~0%
async 32000 1,529,805 — — — — 6125.0% 489MiB +1.1% -0.2%
Full log
  "duration_s": 20.002,
  "requests": 199655,
  "bytes": 31146180,
  "achieved_rate": 9981.67,
  "target_rate": 10000,
  "target_rate_end": 10000,
  "rate_ratio": 0.9982,
  "bytes_per_sec": 1557140.56,
  "error_rate": 0.000000,
  "max_schedule_lag_us": 0,
  "latency_us": {
    "min": 38, "mean": 84.0, "stdev": 536.9, "max": 36927,
    "p50": 67, "p75": 74, "p90": 87, "p99": 119, "p99_9": 806, "p99_99": 26840
  },
  "status_codes": { "1xx": 0, "2xx": 199655, "3xx": 0, "4xx": 0, "5xx": 0 },
  "errors": { "connect": 0, "read": 0, "write": 0, "timeout": 0, "deadline": 0, "non_2xx_3xx": 0 },
  "latency_histogram": "HISTFAAAAk54nC1RXUgUYRSde+bnG9cdf9o2XdIk21UXXX8yrTBaIkJNwocSonooogJTIqIggjARFSVZ0gQXoX0I8kErQoQgLKR6WjYQeyh8qs1AIiIkgh7qzNh8w3zfPffOOfeer2RgPKBpmNM2H/3/Ll4wPqTFf2wCHdAMf/hsd1KW5LtMYFj/rfflvCh+GE/0bozJ9ISsj8ry7fSNvouprv62bDzTmj758UpqQCbH5NOQLN1c6Fk5863j1cHVxsGa/rr12nTtcGy5cqZ8qSS7NVuQctZ8q/ainVE/1YZ6rRJ2yh6xE/YzNavS9mTuY+eps+a89Sf90/5fvgHfjD1vr6i0yqoRlbDuWQlzUV/FuixIRlIyK0np6R6UAyfaTtXvrg/vqarYUrUvfLS5pqS5pryitsDK27bDZxX787isPNuyLQOGoRmmBQ0w4UCBr4ldKEIAOXgiPJjoxU7k4yr2e+A1NOAIctGCJiJxr6IFx/BHSNCJSq73gnbU4Z0giPuCDwIdo4IYwymQ6qvgL0j6Usec4C5Qjc9Cgb24jtO4TJZWhPAI+CKYErI34hZbbGCqEQ/EJXkDdFB4OwrZRDupY2whwhXDYdwRUJEd5JM5wF47OVYZk9WEC0EqjUQcNspDtVGEHIOtaUxGcAHUUzjEwGTeLVduaZMH5vIboQllpG4wTNc1zdUqNZpgGg4z9EYRcMsCMOIoBXcGin9oLI94SlGCuicRoQ9l3klnRYi5IC0N4jyei3cjrmte/XFccl1sIXoOvKMQty5OH3Q7jOIfd1R+/w=="
}
[info] CPU 36.7% | Mem 79MiB
[info] run 1 wins on score

=== Best: 9981 req/s (CPU: 36.7%, Mem: 79MiB) ===
[info] exact CPU: 7.64 core-seconds | 38.274 us/req
=== Fixed-rate: cpu/req 38.27us | p99 120.0us | p99.9 433.0us | rate_ratio 0.9981 ===
[info] saved results/latency-10k/1024/libuvcpp.json
httparena-bench-libuvcpp
httparena-bench-libuvcpp

==============================================
=== libuvcpp / latency-500k-8cpu / 1024c (tool=zrk) ===
==============================================
[info] waiting for server...
[info] server ready

[run 1/3]
{
  "zrk_version": "2.3.0",
  "target": { "url": "http://localhost:8080/baseline11?a=1&b=2", "method": "GET" },
  "config": { "connections": 1024, "launched": 1024, "duration_s": 20.000, "closed": false, "target_rate": 500000, "timeout_ms": 2000, "deadline_ms": 0, "deadline_abort": false, "record_timeouts": true },
  "duration_s": 20.006,
  "requests": 5439773,
  "bytes": 848604588,
  "achieved_rate": 271900.77,
  "target_rate": 500000,
  "target_rate_end": 500000,
  "rate_ratio": 0.5438,
  "bytes_per_sec": 42416519.50,
  "error_rate": 0.000000,
  "max_schedule_lag_us": 9775018,
  "latency_us": {
    "min": 44, "mean": 4536264.9, "stdev": 2624355.5, "max": 9781247,
    "p50": 4524032, "p75": 6772736, "p90": 8128512, "p99": 9293824, "p99_9": 9654272, "p99_99": 9736192
  },
  "status_codes": { "1xx": 0, "2xx": 5439773, "3xx": 0, "4xx": 0, "5xx": 0 },
  "errors": { "connect": 0, "read": 0, "write": 0, "timeout": 0, "deadline": 0, "non_2xx_3xx": 0 },
  "latency_histogram": "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"
}
[info] CPU 778.7% | Mem 32MiB

[run 2/3]
{
  "zrk_version": "2.3.0",
  "target": { "url": "http://localhost:8080/baseline11?a=1&b=2", "method": "GET" },
  "config": { "connections": 1024, "launched": 1024, "duration_s": 20.000, "closed": false, "target_rate": 500000, "timeout_ms": 2000, "deadline_ms": 0, "deadline_abort": false, "record_timeouts": true },
  "duration_s": 20.007,
  "requests": 5381354,
  "bytes": 839491224,
  "achieved_rate": 268969.71,
  "target_rate": 500000,
  "target_rate_end": 500000,
  "rate_ratio": 0.5379,
  "bytes_per_sec": 41959274.24,
  "error_rate": 0.000000,
  "max_schedule_lag_us": 10639414,
  "latency_us": {
    "min": 57, "mean": 4580672.2, "stdev": 2671595.9, "max": 10649599,
    "p50": 4556800, "p75": 6838272, "p90": 8218624, "p99": 9760768, "p99_9": 10522624, "p99_99": 10604544
  },
  "status_codes": { "1xx": 0, "2xx": 5381354, "3xx": 0, "4xx": 0, "5xx": 0 },
  "errors": { "connect": 0, "read": 0, "write": 0, "timeout": 0, "deadline": 0, "non_2xx_3xx": 0 },
  "latency_histogram": "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"
}
[info] CPU 780.6% | Mem 31MiB

[run 3/3]
{
  "zrk_version": "2.3.0",
  "target": { "url": "http://localhost:8080/baseline11?a=1&b=2", "method": "GET" },
  "config": { "connections": 1024, "launched": 1024, "duration_s": 20.000, "closed": false, "target_rate": 500000, "timeout_ms": 2000, "deadline_ms": 0, "deadline_abort": false, "record_timeouts": true },
  "duration_s": 20.007,
  "requests": 5383968,
  "bytes": 839899008,
  "achieved_rate": 269097.57,
  "target_rate": 500000,
  "target_rate_end": 500000,
  "rate_ratio": 0.5382,
  "bytes_per_sec": 41979220.89,
  "error_rate": 0.000000,
  "max_schedule_lag_us": 10292428,
  "latency_us": {
    "min": 43, "mean": 4566707.8, "stdev": 2675753.1, "max": 10297343,
    "p50": 4524032, "p75": 6789120, "p90": 8284160, "p99": 9670656, "p99_9": 10170368, "p99_99": 10244096
  },
  "status_codes": { "1xx": 0, "2xx": 5383968, "3xx": 0, "4xx": 0, "5xx": 0 },
  "errors": { "connect": 0, "read": 0, "write": 0, "timeout": 0, "deadline": 0, "non_2xx_3xx": 0 },
  "latency_histogram": "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"
}
[info] CPU 777.4% | Mem 31MiB
[info] run 1 wins on score

=== Best: 271901 req/s (CPU: 778.7%, Mem: 32MiB) ===
[info] exact CPU: 159.57 core-seconds | 29.335 us/req
=== Fixed-rate: cpu/req 29.33us | p99 9293824.0us | p99.9 9654272.0us | rate_ratio 0.5438 ===
[warn] offered rate fell short: rate_ratio=0.5438 (target 500000/s)
[warn]   the CPU number is not comparable with runs that held the rate
[info] saved results/latency-500k-8cpu/1024/libuvcpp.json
httparena-bench-libuvcpp
httparena-bench-libuvcpp

==============================================
=== libuvcpp / async / 32000c (tool=gcannon) ===
==============================================
[info] waiting for server...
[info] server ready

[run 1/3]
gcannon v0.5.3
  Target:    localhost:8080/
  Threads:   64
  Conns:     32000 (500/thread)
  Pipeline:  1
  Req/conn:  unlimited (keep-alive)
  Expected:  200
  Duration:  10s


  Thread Stats   Avg      p50      p90      p99    p99.9
    Latency   21.08ms   21.90ms   23.90ms   27.30ms   110.90ms

  14071759 requests in 10.00s, 14039759 responses
  Throughput: 1.40M req/s
  Bandwidth:  210.18MB/s
  Status codes: 2xx=14039759, 3xx=0, 4xx=0, 5xx=0
  Latency samples: 14039759 / 14039759 responses (100.0%)
[info] CPU 5062.0% | Mem 492MiB

[run 2/3]
gcannon v0.5.3
  Target:    localhost:8080/
  Threads:   64
  Conns:     32000 (500/thread)
  Pipeline:  1
  Req/conn:  unlimited (keep-alive)
  Expected:  200
  Duration:  10s


  Thread Stats   Avg      p50      p90      p99    p99.9
    Latency   19.93ms   20.10ms   21.70ms   24.60ms   28.10ms

  15330051 requests in 10.00s, 15298051 responses
  Throughput: 1.53M req/s
  Bandwidth:  229.02MB/s
  Status codes: 2xx=15298051, 3xx=0, 4xx=0, 5xx=0
  Latency samples: 15298051 / 15298051 responses (100.0%)
[info] CPU 6125.0% | Mem 489MiB

[run 3/3]
gcannon v0.5.3
  Target:    localhost:8080/
  Threads:   64
  Conns:     32000 (500/thread)
  Pipeline:  1
  Req/conn:  unlimited (keep-alive)
  Expected:  200
  Duration:  10s


  Thread Stats   Avg      p50      p90      p99    p99.9
    Latency   19.97ms   20.20ms   21.80ms   22.60ms   26.00ms

  15246802 requests in 10.00s, 15214802 responses
  Throughput: 1.52M req/s
  Bandwidth:  227.77MB/s
  Status codes: 2xx=15214802, 3xx=0, 4xx=0, 5xx=0
  Latency samples: 15214802 / 15214802 responses (100.0%)
[info] CPU 6121.0% | Mem 487MiB

=== Best: 1529805 req/s (CPU: 6125.0%, Mem: 489MiB) ===
[info] input BW: 70.03MB/s (avg template: 48 bytes)
[info] saved results/async/32000/libuvcpp.json
httparena-bench-libuvcpp
httparena-bench-libuvcpp
[info] rebuilding site/data/*.json
[updated] /home/diogo/actions-runner/_work/HttpArena/HttpArena/site/data/frameworks.json
[updated] /home/diogo/actions-runner/_work/HttpArena/HttpArena/site/data/results/libuvcpp.json - 42 new, 42 total
[updated] /home/diogo/actions-runner/_work/HttpArena/HttpArena/site/data/current.json
[info] done
httparena-postgres
[info] restoring loopback MTU to 65536

@Antruly

Antruly commented Oct 17, 2026

Copy link
Copy Markdown
Contributor Author

The eighth run is in (fcfd2d0, measured on 6f4f750, pin 134f34d), 42 profiles, zero non-2xx. Comparing it to the seventh run — the compliant nlohmann baseline — rather than to what is currently on main:

profile r7 rps r8 rps CPU/req
json-h2c-1024 655 129 1 187 769 (+81%) 98.0 → 53.5 us (-45%)
json-h2c-4096 639 897 1 130 987 (+77%) 100.5 → 54.7 us (-46%)
json-tls-4096 399 878 619 671 (+55%) 163.2 → 102.7 us (-37%)
json-comp-16384 197 549 291 220 (+47%) 308.7 → 223.3 us (-28%)
json-comp-4096 199 935 285 759 (+43%) 313.8 → 218.2 us (-31%)
async-db-1024 86 449 95 435 (+10%) 392.0 → 293.0 us (-25%)
gateway-64-512 199 358 240 386 (+21%) 272.5 → 234.4 us (-14%)
gateway-64-1024 196 673 233 849 (+19%) 266.7 → 256.5 us (-4%)

The json gain is the serializer change and nothing else: the entry-side A/B on this machine measured /json/50?m=6 at 228.6 → 125.3 us of server CPU (-45.2%), against the platform's -45.4% on json-h2c-1024 — two independent rigs, 0.2 percentage points apart. The gradient across the three json profiles (h2c > tls > comp) is the serializer's share of each profile's total cost, which is what it should look like.

gateway-64 moving ~20% is the same change: its request mix is 20 URIs of which 7 are /json/{1..50} and 3 are /async-db (requests/gateway-64-uris.txt), so half its traffic got 2-3x cheaper. async-db gains less in throughput (+10%) than in CPU (-25%) because that profile is Postgres-latency-bound on the platform, not CPU-bound.

Everything else is drift. The full sweep's median is +3.7%, and the four static profiles — which this change does not touch at all — came back between -0.4% and +0.5%. That is the control: the +3-9% seen on untouched profiles is the machine, not the code. The pin also carries the library's own 638512b on the h1 dynamic path, and I am not claiming any of the h1 movement for it: it lands inside that same drift band.

One reading note for the bot's table above: its Δ RPS column is against the results currently on main, which are the fourth run's. That is why json-comp shows -12% and json-h2c -21/-24% there — those are the cost of answering through a proper JSON library instead of the hand-rolled writer we removed on review, not a regression against the seventh run. Every json profile is up sharply against the seventh run, which is the like-for-like comparison.

The entry is also unchanged since the validate on 6f4f750 passed. If this looks right to you, could you merge it?

@Antruly

Antruly commented Oct 17, 2026

Copy link
Copy Markdown
Contributor Author

Everything from our side is in. The eighth run above is green across all 42 profiles (zero non-2xx), and this branch has not changed since fcfd2d0 — the run was measured on 6f4f750, pin 134f34d.

So this is ready to merge whenever you decide. We deliberately keep the 1.7.3 work off this branch: once 1.7.2 lands, we will open a separate PR for the next version, with its own pin bump and its own run. That keeps this diff reviewable exactly as it is, and it means nothing here needs to move while you review.

@MDA2AV
MDA2AV merged commit 192bf3d into MDA2AV:main Oct 17, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants