Skip to content

Add fnet-h1 (Go http1.x) entry - #1666

Merged
MDA2AV merged 12 commits into
MDA2AV:mainfrom
linfeip:main
Oct 31, 2026
Merged

MDA2AV merged 12 commits into
MDA2AV:mainfrom
linfeip:main

Conversation

@linfeip

@linfeip linfeip commented Oct 27, 2026

Copy link
Copy Markdown
Contributor

Description

fnet-h1 — Go entry

This adds the HTTP/1.1 entry for the fhttp server of fnet (github.com/linfeip/fnet, v1.0.1-0.20261027085849).

fnet is an event-driven network library for Go: a TCP engine, a net/http-compatible HTTP/1.x server (fhttp) and a WebSocket server, all on the same set of event loops. It runs a main/sub-reactor model on epoll (Linux) and kqueue (macOS); each connection is served by one task at a time on a per-CPU sharded, lock-free goroutine pool (taskpool) — no goroutine per connection, and an idle connection holds neither a goroutine nor a buffer (the read buffer is borrowed only while its task is reading). fhttp keeps the standard library's parser and http.Handler interface: the event loop only finds where each request message ends, then the message is parsed and the handler run on a taskpool worker.

What the request path looks like:

  • A connection's reads happen inside its task, and the loop hands the message over whole once it sees where it ends. The handler runs on that same task, so baseline, json-comp and the fixed-rate profiles never leave the loop's thread pool.
  • Responses are buffered whole and leave in one write, so a batch of pipelined requests is answered together instead of a syscall per response — which is what pipelined exercises.
  • /delay/{ms} sleeps on the task. The pool only wakes a parked worker when none is free, so async's 16,000 connections each waiting 10 ms hold neither a goroutine nor a buffer.
  • A request whose body is not buffered (larger than 1 MB, chunked, or framed unusually) is handed to an internal net/http server, which closes that connection after the one request. Chunked POST /baseline11 is the only thing on that path.
  • ReusePort is on: on Linux every sub-reactor listens on :8080 with a socket of its own (SO_REUSEPORT), so accepts run in parallel and a connection stays on the loop that accepted it.

Entry notes:

  • type: experimental, engine: fnet — the same classification fnet-ws and uio ended up with; happy to move if that reads wrong.
  • Subscribes to baseline, pipelined, limited-conn, json-comp, async.
  • Routing is a switch on the path rather than http.ServeMux, and path parameters arrive as plain substrings (the count of /json/{count}, the delay of /delay/{ms}) instead of being resolved into Request.PathValue. Query parameters are walked in place with fhttp.ForEachQuery / fhttp.QueryParam, so no map is built per request; baseline11 parses the POST body from the buffered bytes and formats the sum into a stack buffer.
  • json-comp compresses with pooled writers at the levels fasthttp's CompressHandlerBrotliLevel uses by default (gzip 6, brotli quality 4). At equal q values gzip wins: the two bodies are nearly identical on these payloads (1490 vs 1519 bytes for /json/50?m=6) while brotli quality 4 costs several times gzip's CPU. A client that prefers brotli by q value still gets it.
  • Configuration is fnet defaults (NoDelay off); the only explicit setting is fnet.Options{ReusePort: true}. PPROF_ADDR opts in a pprof listener, unset by default so the measured binary is the same code either way.
  • fhttp speaks HTTP/1.1 only, over plaintext or TLS. TLS is served through fhttp.Options.TLSConfig (ftls on the same event loops); the server takes h2 out of ALPN and offers http/1.1, so a client that would otherwise pick h2 falls back to HTTP/1.1. There is no HTTP/2 in any form, h2c included.
  • This entry itself serves plaintext on :8080 and subscribes to no TLS profile (json-tls / static-tls), and it serves no static files. None of the five subscribed profiles needs either; an HTTPS listener is one TLSConfig away.
  • Static binary on scratch (golang:1.27-alpine build stage); SIGTERM/SIGINT close the server and the process exits 0.
  • scripts/validate.sh fnet-h1 passes 14/14 checks; the entry is a single main.go, no benchmarking tricks.
  • Maintainer: @linfeip

PR Commands — comment on this PR to trigger (requires collaborator approval):

Command Description
/benchmark -f <framework> Run every test the framework subscribes to
/benchmark -f <framework> -t <test> Run one test only
/benchmark -f <framework> --save Run and save results (updates the leaderboard on merge)
/benchmark -f <framework> -t <test> --save Run one test and save results
/benchmark -f <framework> --compare <other> Measure the deltas against another framework instead of this one
/benchmark-multiple -f <fw1>,<fw2>,... Benchmark several frameworks in one run — takes -t and --save too; saved results land in a single commit
/benchmark-multiple --save No -f needed: benchmark and save every framework the PR touches
/benchmark-test -t <test> Benchmark all enabled frameworks subscribed to <test> and save the results

For /benchmark, always specify -f <framework>; the flags combine in any order. Results come back as a comment with a per-profile table of RPS, p99, CPU and memory — one table per framework on multi runs. A new benchmark comment while a run is in flight queues behind it (one deep) instead of cancelling it. For multi-framework PRs (dependency bumps, same-language refactors) prefer /benchmark-multiple, which runs everything in a single job and commits all saved results together, so no run overwrites another. --compare works on single-framework runs only.

What the deltas are measured against. By default, this framework's own results published on main - answering "did this change help?". When you are tuning a variant or a successor entry, --compare re-bases them on another entry instead:

/benchmark -f genhttp --compare genhttp-kestrel

The reply states which baseline it used, and profiles the other framework does not run show n/a rather than a delta.


Run benchmarks locally

You can validate and benchmark your framework locally with the lite script — no CPU pinning, fixed connection counts, all load generators run in Docker.

./scripts/validate.sh <framework>
./scripts/benchmark-lite.sh <framework> baseline
./scripts/benchmark-lite.sh --load-threads 4 <framework>

Requirements: Docker Engine on Linux. Load generators (gcannon, h2load, h2load-h3, wrk) are built as self-contained Docker images on first run.

linfeip and others added 8 commits October 7, 2026 14:21
Enable fnet.Options{ReusePort: true} so on Linux every sub-reactor
listens on :8080 with its own SO_REUSEPORT socket and the kernel
spreads connections over the loops. Also treat http.ErrServerClosed
from Serve as a clean shutdown from Close.
@MDA2AV

MDA2AV commented Oct 27, 2026

Copy link
Copy Markdown
Owner

/benchmark --save

@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: fnet-h1 | Test: all tests

Test Conn RPS CPU Mem Δ RPS Δ Mem
baseline 4096 2,261,991 6343.7% 109MiB ~0% ~0%
pipelined 4096 13,078,684 6420.0% 190MiB ~0% ~0%
limited-conn 4096 1,964,194 6384.6% 308MiB ~0% ~0%
json-comp 4096 223,661 5413.1% 405MiB ~0% ~0%
json-comp 16384 225,498 5088.3% 552MiB ~0% ~0%
async 32000 1,789,711 6049.2% 728MiB ~0% ~0%

Composite score, main against this run, in the board's default view:

Family main this run Δ
HTTP/1.1 - 2131.5 (#20 of 23) -

The results on main were measured in another session, so a few points up or down can be the machine and not the change.

Full log
  Reconnects: 40422
  Per-template: 351611,351967,352759
  Per-template-ok: 351611,351967,352759
[info] CPU 5490.7% | Mem 436MiB

=== Best: 223661 req/s (CPU: 5413.1%, Mem: 405MiB) ===
[info] input BW: 16.64MB/s (avg template: 78 bytes)
[info] saved results/json-comp/4096/fnet-h1.json
httparena-bench-fnet-h1
httparena-bench-fnet-h1

==============================================
=== fnet-h1 / json-comp / 16384c (tool=gcannon) ===
==============================================
[info] waiting for server...
[info] server ready

[run 1/3]
gcannon v0.5.3
  Target:    localhost:8080/
  Threads:   64
  Conns:     16384 (256/thread)
  Pipeline:  1
  Req/conn:  25
  Templates: 3
  Expected:  200
  Duration:  5s


  Thread Stats   Avg      p50      p90      p99    p99.9
    Latency   69.68ms   6.64ms   225.40ms   588.10ms   955.20ms

  1143869 requests in 5.00s, 1127491 responses
  Throughput: 225.41K req/s
  Bandwidth:  298.18MB/s
  Status codes: 2xx=1127491, 3xx=0, 4xx=0, 5xx=0
  Latency samples: 1127491 / 1127491 responses (100.0%)
  Reconnects: 37608
  Per-template: 376333,375745,375413
  Per-template-ok: 376333,375745,375413
[info] CPU 5088.3% | Mem 552MiB

[run 2/3]
gcannon v0.5.3
  Target:    localhost:8080/
  Threads:   64
  Conns:     16384 (256/thread)
  Pipeline:  1
  Req/conn:  25
  Templates: 3
  Expected:  200
  Duration:  5s


  Thread Stats   Avg      p50      p90      p99    p99.9
    Latency   67.88ms   3.36ms   208.00ms   712.80ms    1.89s

  1141098 requests in 5.00s, 1124715 responses
  Throughput: 224.86K req/s
  Bandwidth:  297.47MB/s
  Status codes: 2xx=1124715, 3xx=0, 4xx=0, 5xx=0
  Latency samples: 1124715 / 1124715 responses (100.0%)
  Reconnects: 38205
  Per-template: 375305,374730,374680
  Per-template-ok: 375305,374730,374680
[info] CPU 5769.3% | Mem 493MiB

[run 3/3]
gcannon v0.5.3
  Target:    localhost:8080/
  Threads:   64
  Conns:     16384 (256/thread)
  Pipeline:  1
  Req/conn:  25
  Templates: 3
  Expected:  200
  Duration:  5s


  Thread Stats   Avg      p50      p90      p99    p99.9
    Latency   68.89ms   4.57ms   203.50ms   809.90ms    1.39s

  1125954 requests in 5.00s, 1109570 responses
  Throughput: 221.84K req/s
  Bandwidth:  293.51MB/s
  Status codes: 2xx=1109570, 3xx=0, 4xx=0, 5xx=0
  Latency samples: 1109570 / 1109570 responses (100.0%)
  Reconnects: 36576
  Per-template: 369560,370453,369557
  Per-template-ok: 369560,370453,369557
[info] CPU 5528.7% | Mem 622MiB

=== Best: 225498 req/s (CPU: 5088.3%, Mem: 552MiB) ===
[info] input BW: 16.77MB/s (avg template: 78 bytes)
[info] saved results/json-comp/16384/fnet-h1.json
httparena-bench-fnet-h1
httparena-bench-fnet-h1
[info] skip: fnet-h1 does not subscribe to json-tls
[info] skip: fnet-h1 does not subscribe to 8gbit
[info] skip: fnet-h1 does not subscribe to static-tls
[info] skip: fnet-h1 does not subscribe to async-db
[info] skip: fnet-h1 does not subscribe to fortunes
[info] skip: fnet-h1 does not subscribe to baseline-h2
[info] skip: fnet-h1 does not subscribe to static-h2
[info] skip: fnet-h1 does not subscribe to baseline-h2c
[info] skip: fnet-h1 does not subscribe to json-h2c
[info] skip: fnet-h1 does not subscribe to baseline-h3
[info] skip: fnet-h1 does not subscribe to static-h3
[info] skip: fnet-h1 does not subscribe to gateway-64
[info] skip: fnet-h1 does not subscribe to gateway-h3
[info] skip: fnet-h1 does not subscribe to production-stack
[info] skip: fnet-h1 does not subscribe to unary-grpc
[info] skip: fnet-h1 does not subscribe to unary-grpc-tls
[info] skip: fnet-h1 does not subscribe to echo-ws
[info] skip: fnet-h1 does not subscribe to echo-ws-pipeline
[info] skip: fnet-h1 does not subscribe to echo-ws-limited
[info] skip: fnet-h1 does not subscribe to latency-1m
[info] skip: fnet-h1 does not subscribe to latency-10k
[info] skip: fnet-h1 does not subscribe to latency-500k-8cpu

==============================================
=== fnet-h1 / 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.46ms   19.60ms   29.90ms   78.50ms   321.40ms

  14849332 requests in 10.00s, 14817332 responses
  Throughput: 1.48M req/s
  Bandwidth:  145.52MB/s
  Status codes: 2xx=14817332, 3xx=0, 4xx=0, 5xx=0
  Latency samples: 14817332 / 14817332 responses (100.0%)
[info] CPU 4628.3% | Mem 775MiB

[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   18.59ms   16.50ms   27.50ms   59.60ms   95.50ms

  17131494 requests in 10.00s, 17099494 responses
  Throughput: 1.71M req/s
  Bandwidth:  167.94MB/s
  Status codes: 2xx=17099494, 3xx=0, 4xx=0, 5xx=0
  Latency samples: 17099494 / 17099494 responses (100.0%)
[info] CPU 5839.1% | Mem 733MiB

[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   17.74ms   15.50ms   26.20ms   49.10ms   90.20ms

  17929116 requests in 10.00s, 17897116 responses
  Throughput: 1.79M req/s
  Bandwidth:  175.77MB/s
  Status codes: 2xx=17897116, 3xx=0, 4xx=0, 5xx=0
  Latency samples: 17897116 / 17897116 responses (100.0%)
[info] CPU 6049.2% | Mem 728MiB

=== Best: 1789711 req/s (CPU: 6049.2%, Mem: 728MiB) ===
[info] input BW: 81.93MB/s (avg template: 48 bytes)
[info] saved results/async/32000/fnet-h1.json
httparena-bench-fnet-h1
httparena-bench-fnet-h1
[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/fnet-h1.json - 6 new, 6 total
[updated] /home/diogo/actions-runner/_work/HttpArena/HttpArena/site/data/current.json
[info] done
[info] restoring loopback MTU to 65536

@linfeip

linfeip commented Oct 28, 2026

Copy link
Copy Markdown
Contributor Author

This commit expands fnet’s HTTP and WebSocket benchmarks with HTTPS, static file serving, PostgreSQL and Redis endpoints, and additional test profiles. It also tunes WebSocket task execution and event loop usage for better CPU utilization.

@linfeip

linfeip commented Oct 28, 2026

Copy link
Copy Markdown
Contributor Author

/benchmark --save

@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: fnet-h1 | Test: all tests

Test Conn RPS Rate CPU/req p99 p99.9 CPU Mem Δ RPS Δ Mem
baseline 4096 2,404,492 — — — — 6605.8% 156MiB ~0% ~0%
pipelined 4096 13,726,828 — — — — 6470.2% 228MiB ~0% ~0%
limited-conn 4096 2,010,211 — — — — 6363.5% 301MiB ~0% ~0%
json-comp 4096 230,866 — — — — 5403.3% 560MiB ~0% ~0%
json-comp 16384 228,590 — — — — 5222.6% 596MiB ~0% ~0%
json-tls 4096 457,968 — — — — 5031.3% 275MiB ~0% ~0%
8gbit 512 49,243 0.9849 61.07us 171.0us 3461.0us 294.2% 126MiB ~0% ~0%
static-tls 1024 244,877 — — — — 4176.1% 298MiB ~0% ~0%
async-db 1024 116,347 — — — — 4353.7% 236MiB ~0% ~0%
latency-1m 1024 997,258 0.9973 30.18us 518.0us 8780.0us 3238.3% 132MiB ~0% ~0%
latency-10k 1024 9,981 0.9981 42.52us 124.0us 601.0us 40.7% 86MiB ~0% ~0%
latency-500k-8cpu 1024 404,289 0.8086 ⚠️ 18.84us 4004864.0us 4282368.0us 755.5% 33MiB ~0% ~0%
async 32000 1,494,896 — — — — 5125.4% 841MiB ~0% ~0%

Composite score, main against this run, in the board's default view:

Family main this run Δ
HTTP/1.1 - 4585.4 (#14 of 23) -

The results on main were measured in another session, so a few points up or down can be the machine and not the change.

Full log
  "duration_s": 20.002,
  "requests": 199643,
  "bytes": 20363586,
  "achieved_rate": 9981.07,
  "target_rate": 10000,
  "target_rate_end": 10000,
  "rate_ratio": 0.9981,
  "bytes_per_sec": 1018069.00,
  "error_rate": 0.000000,
  "max_schedule_lag_us": 0,
  "latency_us": {
    "min": 40, "mean": 84.5, "stdev": 566.3, "max": 38943,
    "p50": 66, "p75": 73, "p90": 84, "p99": 124, "p99_9": 601, "p99_99": 31224
  },
  "status_codes": { "1xx": 0, "2xx": 199643, "3xx": 0, "4xx": 0, "5xx": 0 },
  "errors": { "connect": 0, "read": 0, "write": 0, "timeout": 0, "deadline": 0, "non_2xx_3xx": 0 },
  "latency_histogram": "HISTFAAAAkF4nC1QTUhUURR+53v3vvl7kz7HcdSZUBG1nEIMhggZRVxoq7FVGrmIygoClxGEmAgxtilEd5kLi8kkXIiGRLWQoKFgGEVMpMCFhAwhFOLCRd8bfe/de877zne+890bG5sIGQbeGsePeRKl+DPxxOjYPwZSsGx/6blrd9dlCwvq0Dr0/ywbj+Xj79vnU5/vzD6ampT8Kzmak703cvBSchMy/1Rmhr89XBjK3tsYnL6x1zfd+6/7ILmTyDYfNSzVzsYylbmKTHmubNP5XVI4tW1vBXb8f3wb3mfeUc+iVdCLekZndE6v6Kwu6G29q7/od3pJr+oR1tbVinqtRtSqmccuNjGHjziUDEaxL5uSkbx8kCkZHpPhW33j0nt/8HpPe8+F6jPNzbHG2sbq0vLKigrb9lqW37YN2++FBYufUgoKpjJgwAOPMrkb8EEzBrkc9AMJJgHUoUkNMKvHc8ELQQlC+As8Fiz78Am4iTjSgiv4KkgHcB6pIjlRVLxKxSCGMCnoxppQzkNGCGEyosBttCHCJIIqLs2m07iMLiouC36YLsVBkgrfBb/Ann50wsRFIhRqANscuNN9tEWnnYioKMfW8EhJxiDL7glYD5Me5woQRtOJSADF00ZZMUj1cNZZlrqKaJBZDQi4hTh3TcChT4OKAbhX5sBR9TCUw/E1qo1ImJhBZoiMEFppsI5DLyGteFElPF4d9yrGFhoIMXepDv+6gQfsbypaNXlJA4SrqGXy9dFSi2s8gqBqRQdp/wF4Lnxm"
}
[info] CPU 40.7% | Mem 86MiB
[info] run 3 wins on score

=== Best: 9981 req/s (CPU: 40.7%, Mem: 86MiB) ===
[info] exact CPU: 8.49 core-seconds | 42.522 us/req
=== Fixed-rate: cpu/req 42.52us | p99 124.0us | p99.9 601.0us | rate_ratio 0.9981 ===
[info] saved results/latency-10k/1024/fnet-h1.json
httparena-bench-fnet-h1
httparena-bench-fnet-h1

==============================================
=== fnet-h1 / 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.005,
  "requests": 8047233,
  "bytes": 820817766,
  "achieved_rate": 402261.94,
  "target_rate": 500000,
  "target_rate_end": 500000,
  "rate_ratio": 0.8045,
  "bytes_per_sec": 41030717.47,
  "error_rate": 0.000000,
  "max_schedule_lag_us": 4775086,
  "latency_us": {
    "min": 62, "mean": 1951941.0, "stdev": 1123916.5, "max": 4780031,
    "p50": 1923584, "p75": 2866176, "p90": 3490816, "p99": 4187136, "p99_9": 4458496, "p99_99": 4626432
  },
  "status_codes": { "1xx": 0, "2xx": 8047233, "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 754.8% | Mem 37MiB

[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": 8088775,
  "bytes": 825055050,
  "achieved_rate": 404288.56,
  "target_rate": 500000,
  "target_rate_end": 500000,
  "rate_ratio": 0.8086,
  "bytes_per_sec": 41237432.98,
  "error_rate": 0.000000,
  "max_schedule_lag_us": 4577874,
  "latency_us": {
    "min": 44, "mean": 1896352.2, "stdev": 1112283.6, "max": 4587519,
    "p50": 1881600, "p75": 2821120, "p90": 3435520, "p99": 4004864, "p99_9": 4282368, "p99_99": 4442112
  },
  "status_codes": { "1xx": 0, "2xx": 8088775, "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 755.5% | 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.007,
  "requests": 8068233,
  "bytes": 822959766,
  "achieved_rate": 403267.47,
  "target_rate": 500000,
  "target_rate_end": 500000,
  "rate_ratio": 0.8065,
  "bytes_per_sec": 41133282.30,
  "error_rate": 0.000000,
  "max_schedule_lag_us": 4728469,
  "latency_us": {
    "min": 41, "mean": 1916026.3, "stdev": 1122025.9, "max": 4730879,
    "p50": 1904128, "p75": 2847744, "p90": 3449856, "p99": 4092928, "p99_9": 4401152, "p99_99": 4626432
  },
  "status_codes": { "1xx": 0, "2xx": 8068233, "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 758.0% | Mem 33MiB
[info] run 2 wins on score

=== Best: 404289 req/s (CPU: 755.5%, Mem: 33MiB) ===
[info] exact CPU: 152.36 core-seconds | 18.835 us/req
=== Fixed-rate: cpu/req 18.84us | p99 4004864.0us | p99.9 4282368.0us | rate_ratio 0.8086 ===
[warn] offered rate fell short: rate_ratio=0.8086 (target 500000/s)
[warn]   the CPU number is not comparable with runs that held the rate
[info] saved results/latency-500k-8cpu/1024/fnet-h1.json
httparena-bench-fnet-h1
httparena-bench-fnet-h1

==============================================
=== fnet-h1 / 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   22.09ms   20.50ms   30.60ms   74.70ms   259.70ms

  14399567 requests in 10.00s, 14367567 responses
  Throughput: 1.44M req/s
  Bandwidth:  141.11MB/s
  Status codes: 2xx=14367567, 3xx=0, 4xx=0, 5xx=0
  Latency samples: 14367567 / 14367567 responses (100.0%)
[info] CPU 4703.9% | Mem 831MiB

[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   21.21ms   20.30ms   30.10ms   41.20ms   109.50ms

  14980960 requests in 10.00s, 14948960 responses
  Throughput: 1.49M req/s
  Bandwidth:  146.82MB/s
  Status codes: 2xx=14948960, 3xx=0, 4xx=0, 5xx=0
  Latency samples: 14948960 / 14948960 responses (100.0%)
[info] CPU 5125.4% | Mem 841MiB

[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   21.52ms   20.40ms   30.50ms   71.00ms   109.70ms

  14818569 requests in 10.00s, 14786569 responses
  Throughput: 1.48M req/s
  Bandwidth:  145.22MB/s
  Status codes: 2xx=14786569, 3xx=0, 4xx=0, 5xx=0
  Latency samples: 14786569 / 14786569 responses (100.0%)
[info] CPU 5079.3% | Mem 892MiB

=== Best: 1494896 req/s (CPU: 5125.4%, Mem: 841MiB) ===
[info] input BW: 68.43MB/s (avg template: 48 bytes)
[info] saved results/async/32000/fnet-h1.json
httparena-bench-fnet-h1
httparena-bench-fnet-h1
[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/fnet-h1.json - 13 new, 13 total
[updated] /home/diogo/actions-runner/_work/HttpArena/HttpArena/site/data/current.json
[info] done
httparena-postgres
[info] restoring loopback MTU to 65536

@MDA2AV
MDA2AV merged commit 01c6998 into MDA2AV:main Oct 31, 2026
5 checks passed
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