From 3b8fee37b1fccec5f1d33fd825888aee7b7faaa2 Mon Sep 17 00:00:00 2001 From: Hitalo Souza Date: Fri, 3 Jul 2026 23:38:50 -0300 Subject: [PATCH 1/2] refactor(vanilla-epoll): extract shared emit_xcache helper for crud X-Cache framing MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Fold the two inlined X-Cache response framings (crud GET hit/miss) into one emit_xcache helper — byte-identical output, and identical to the vanilla-io_uring twin's emit_xcache, so both entries share one audited framing and diff cleanly. No behavior or performance change (verified: crud GET MISS/HIT bytes unchanged). Co-Authored-By: Claude Opus 4.8 (1M context) --- frameworks/vanilla-epoll/main.v | 27 +++++++++++++++++---------- 1 file changed, 17 insertions(+), 10 deletions(-) diff --git a/frameworks/vanilla-epoll/main.v b/frameworks/vanilla-epoll/main.v index 03855f12d..0e6ca07d0 100644 --- a/frameworks/vanilla-epoll/main.v +++ b/frameworks/vanilla-epoll/main.v @@ -236,6 +236,21 @@ fn write_resp(mut out []u8, ctype string, body string) { ws(mut out, body) } +// emit_xcache writes a complete 200 JSON response carrying an X-Cache: HIT|MISS header +// straight into `out` — the single framing shared by the crud GET hit/miss paths (and +// byte-identical to the vanilla-io_uring twin's emit_xcache, so the two entries diff +// cleanly). `body` is the render buffer (snapshotted under the read-lock on a HIT). +fn emit_xcache(mut out []u8, ctype string, body []u8, cache string) { + ws(mut out, 'HTTP/1.1 200 OK\r\nServer: vanilla\r\nX-Cache: ') + ws(mut out, cache) + ws(mut out, '\r\nContent-Type: ') + ws(mut out, ctype) + ws(mut out, '\r\nContent-Length: ') + wi(mut out, i64(body.len)) + ws(mut out, '\r\nConnection: keep-alive\r\n\r\n') + wb(mut out, body) +} + // emit_int writes a 200 whose body is a single integer, formatting it into the // reused per-worker scratch. The obvious `write_resp(.., n.str())` heap-allocates // an int->string on every request — a permanent leak under `-gc none` (e.g. the @@ -716,11 +731,7 @@ fn (mut w WorkerCtx) start_crud_get(mut out []u8, mut ac core.AsyncCtx, id int) } if hit { // Cache hit: answer synchronously, no DB round-trip. - ws(mut out, - 'HTTP/1.1 200 OK\r\nServer: vanilla\r\nX-Cache: HIT\r\nContent-Type: application/json\r\nContent-Length: ') - wi(mut out, i64(w.scratch.len)) - ws(mut out, '\r\nConnection: keep-alive\r\n\r\n') - wb(mut out, w.scratch) + emit_xcache(mut out, 'application/json', w.scratch, 'HIT') return .done } w.reset_params() @@ -758,11 +769,7 @@ fn (mut w WorkerCtx) render_crud_get(mut out []u8, res pg_async.Result, id int) slot.valid = true w.ro.crud_mu.unlock() } - ws(mut out, - 'HTTP/1.1 200 OK\r\nServer: vanilla\r\nX-Cache: MISS\r\nContent-Type: application/json\r\nContent-Length: ') - wi(mut out, i64(w.scratch.len)) - ws(mut out, '\r\nConnection: keep-alive\r\n\r\n') - wb(mut out, w.scratch) + emit_xcache(mut out, 'application/json', w.scratch, 'MISS') } fn (mut w WorkerCtx) start_crud_create(mut out []u8, mut ac core.AsyncCtx, req request_parser.HttpRequest) core.AsyncStep { From 794f6a4f405b3286869c7bcb153262b7115a73d2 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" Date: Sun, 5 Jul 2026 08:54:00 +0000 Subject: [PATCH 2/2] Benchmark results: vanilla-epoll --- site/data/api-16-1024.json | 24 +++++++++---------- site/data/api-4-256.json | 24 +++++++++---------- site/data/async-db-1024.json | 18 +++++++------- site/data/baseline-4096.json | 16 ++++++------- site/data/baseline-512.json | 14 +++++------ site/data/crud-4096.json | 20 ++++++++-------- site/data/fortunes-1024.json | 12 +++++----- site/data/json-4096.json | 18 +++++++------- site/data/json-comp-16384.json | 18 +++++++------- site/data/json-comp-4096.json | 18 +++++++------- site/data/json-comp-512.json | 18 +++++++------- site/data/json-tls-4096.json | 14 +++++------ site/data/limited-conn-4096.json | 18 +++++++------- site/data/limited-conn-512.json | 14 +++++------ site/data/pipelined-4096.json | 10 ++++---- site/data/pipelined-512.json | 12 +++++----- site/data/static-1024.json | 12 +++++----- site/data/static-4096.json | 12 +++++----- site/data/static-6800.json | 14 +++++------ site/data/upload-256.json | 18 +++++++------- site/data/upload-32.json | 18 +++++++------- .../static/logs/api-16/1024/vanilla-epoll.log | 2 +- .../logs/async-db/1024/vanilla-epoll.log | 4 ++-- .../logs/baseline/4096/vanilla-epoll.log | 4 ++-- .../logs/baseline/512/vanilla-epoll.log | 2 +- site/static/logs/crud/4096/vanilla-epoll.log | 4 ++-- .../logs/json-comp/16384/vanilla-epoll.log | 4 ++-- .../logs/json-comp/4096/vanilla-epoll.log | 2 +- .../logs/json-comp/512/vanilla-epoll.log | 4 ++-- .../logs/json-tls/4096/vanilla-epoll.log | 2 +- site/static/logs/json/4096/vanilla-epoll.log | 2 +- .../logs/limited-conn/4096/vanilla-epoll.log | 2 +- .../logs/limited-conn/512/vanilla-epoll.log | 4 ++-- .../logs/pipelined/4096/vanilla-epoll.log | 6 ++--- .../logs/pipelined/512/vanilla-epoll.log | 2 +- .../static/logs/static/1024/vanilla-epoll.log | 2 +- .../static/logs/static/4096/vanilla-epoll.log | 2 +- .../static/logs/static/6800/vanilla-epoll.log | 2 +- site/static/logs/upload/256/vanilla-epoll.log | 4 ++-- site/static/logs/upload/32/vanilla-epoll.log | 4 ++-- 40 files changed, 200 insertions(+), 200 deletions(-) diff --git a/site/data/api-16-1024.json b/site/data/api-16-1024.json index 9aedf3f7f..5e9a45ead 100644 --- a/site/data/api-16-1024.json +++ b/site/data/api-16-1024.json @@ -1481,28 +1481,28 @@ { "framework": "vanilla-epoll", "language": "V", - "rps": 246597, - "avg_latency": "1.74ms", - "p99_latency": "14.20ms", - "cpu": "1521.7%", - "memory": "184MiB", + "rps": 254377, + "avg_latency": "1.75ms", + "p99_latency": "14.70ms", + "cpu": "1547.0%", + "memory": "178MiB", "connections": 1024, "threads": 64, "duration": "5s", "pipeline": 1, - "bandwidth": "1.22GB/s", - "input_bw": "13.88MB/s", - "reconnects": 739482, - "status_2xx": 3698959, + "bandwidth": "1.25GB/s", + "input_bw": "14.31MB/s", + "reconnects": 762969, + "status_2xx": 3815657, "status_3xx": 0, "status_4xx": 0, "status_5xx": 0, - "tpl_baseline": 1387822, - "tpl_json": 1387370, + "tpl_baseline": 1432236, + "tpl_json": 1430388, "tpl_db": 0, "tpl_upload": 0, "tpl_static": 0, - "tpl_async_db": 923762 + "tpl_async_db": 953031 }, { "framework": "vanilla-io_uring", diff --git a/site/data/api-4-256.json b/site/data/api-4-256.json index a75995c2b..808c81ea7 100644 --- a/site/data/api-4-256.json +++ b/site/data/api-4-256.json @@ -1481,28 +1481,28 @@ { "framework": "vanilla-epoll", "language": "V", - "rps": 63173, - "avg_latency": "1.88ms", - "p99_latency": "13.60ms", - "cpu": "369.1%", - "memory": "112MiB", + "rps": 68592, + "avg_latency": "1.91ms", + "p99_latency": "13.50ms", + "cpu": "414.7%", + "memory": "111MiB", "connections": 256, "threads": 64, "duration": "5s", "pipeline": 1, - "bandwidth": "318.85MB/s", - "input_bw": "3.55MB/s", - "reconnects": 189479, - "status_2xx": 947605, + "bandwidth": "346.16MB/s", + "input_bw": "3.86MB/s", + "reconnects": 205756, + "status_2xx": 1028890, "status_3xx": 0, "status_4xx": 0, "status_5xx": 0, - "tpl_baseline": 355655, - "tpl_json": 355391, + "tpl_baseline": 386203, + "tpl_json": 385650, "tpl_db": 0, "tpl_upload": 0, "tpl_static": 0, - "tpl_async_db": 236559 + "tpl_async_db": 257036 }, { "framework": "vanilla-io_uring", diff --git a/site/data/async-db-1024.json b/site/data/async-db-1024.json index 4e9d541d5..315147e42 100644 --- a/site/data/async-db-1024.json +++ b/site/data/async-db-1024.json @@ -1239,19 +1239,19 @@ { "framework": "vanilla-epoll", "language": "V", - "rps": 287513, - "avg_latency": "1.00ms", - "p99_latency": "7.59ms", - "cpu": "3010.6%", - "memory": "143MiB", + "rps": 283937, + "avg_latency": "897us", + "p99_latency": "8.79ms", + "cpu": "2984.1%", + "memory": "141MiB", "connections": 1024, "threads": 64, "duration": "5s", "pipeline": 1, - "bandwidth": "1.08GB/s", - "input_bw": "19.19MB/s", - "reconnects": 115135, - "status_2xx": 2875136, + "bandwidth": "1.07GB/s", + "input_bw": "18.95MB/s", + "reconnects": 113624, + "status_2xx": 2839373, "status_3xx": 0, "status_4xx": 0, "status_5xx": 0 diff --git a/site/data/baseline-4096.json b/site/data/baseline-4096.json index d040e59a0..604608781 100644 --- a/site/data/baseline-4096.json +++ b/site/data/baseline-4096.json @@ -1731,19 +1731,19 @@ { "framework": "vanilla-epoll", "language": "V", - "rps": 4149547, - "avg_latency": "986us", - "p99_latency": "6.56ms", - "cpu": "6439.5%", - "memory": "159MiB", + "rps": 4087099, + "avg_latency": "1.00ms", + "p99_latency": "6.57ms", + "cpu": "6273.4%", + "memory": "153MiB", "connections": 4096, "threads": 64, "duration": "5s", "pipeline": 1, - "bandwidth": "423.31MB/s", - "input_bw": "320.54MB/s", + "bandwidth": "416.92MB/s", + "input_bw": "315.72MB/s", "reconnects": 0, - "status_2xx": 20747738, + "status_2xx": 20435496, "status_3xx": 0, "status_4xx": 0, "status_5xx": 0 diff --git a/site/data/baseline-512.json b/site/data/baseline-512.json index dfead6893..795a458fc 100644 --- a/site/data/baseline-512.json +++ b/site/data/baseline-512.json @@ -1731,19 +1731,19 @@ { "framework": "vanilla-epoll", "language": "V", - "rps": 3718336, - "avg_latency": "137us", - "p99_latency": "737us", - "cpu": "6434.8%", + "rps": 3688848, + "avg_latency": "138us", + "p99_latency": "557us", + "cpu": "6408.3%", "memory": "78MiB", "connections": 512, "threads": 64, "duration": "5s", "pipeline": 1, - "bandwidth": "379.40MB/s", - "input_bw": "287.23MB/s", + "bandwidth": "376.29MB/s", + "input_bw": "284.95MB/s", "reconnects": 0, - "status_2xx": 18591683, + "status_2xx": 18444241, "status_3xx": 0, "status_4xx": 0, "status_5xx": 0 diff --git a/site/data/crud-4096.json b/site/data/crud-4096.json index 4b28a67e0..29329e67e 100644 --- a/site/data/crud-4096.json +++ b/site/data/crud-4096.json @@ -502,22 +502,22 @@ { "framework": "vanilla-epoll", "language": "V", - "rps": 310881, - "avg_latency": "11.44ms", - "p99_latency": "73.00ms", - "cpu": "780.7%", - "memory": "218MiB", + "rps": 309560, + "avg_latency": "11.43ms", + "p99_latency": "70.50ms", + "cpu": "781.1%", + "memory": "217MiB", "connections": 4096, "threads": 64, "duration": "5s", "pipeline": 1, - "bandwidth": "94.97MB/s", - "input_bw": "26.68MB/s", - "reconnects": 22062, - "status_2xx": 4663216, + "bandwidth": "94.46MB/s", + "input_bw": "26.57MB/s", + "reconnects": 22001, + "status_2xx": 4643403, "status_3xx": 0, "status_4xx": 0, - "status_5xx": 65992 + "status_5xx": 68291 }, { "framework": "vanilla-io_uring", diff --git a/site/data/fortunes-1024.json b/site/data/fortunes-1024.json index 69d4c2a33..9d131821d 100644 --- a/site/data/fortunes-1024.json +++ b/site/data/fortunes-1024.json @@ -173,18 +173,18 @@ { "framework": "vanilla-epoll", "language": "V", - "rps": 166925, - "avg_latency": "4.64ms", - "p99_latency": "13.10ms", - "cpu": "6141.3%", + "rps": 165729, + "avg_latency": "4.78ms", + "p99_latency": "15.50ms", + "cpu": "5850.8%", "memory": "257MiB", "connections": 1024, "threads": 64, "duration": "5s", "pipeline": 1, - "bandwidth": "3.87GB/s", + "bandwidth": "3.84GB/s", "reconnects": 0, - "status_2xx": 834628, + "status_2xx": 828647, "status_3xx": 0, "status_4xx": 0, "status_5xx": 0 diff --git a/site/data/json-4096.json b/site/data/json-4096.json index 096cbe2c4..114c620af 100644 --- a/site/data/json-4096.json +++ b/site/data/json-4096.json @@ -1459,19 +1459,19 @@ { "framework": "vanilla-epoll", "language": "V", - "rps": 2156907, - "avg_latency": "1.33ms", - "p99_latency": "34.50ms", - "cpu": "6366.8%", - "memory": "190MiB", + "rps": 2162767, + "avg_latency": "1.29ms", + "p99_latency": "33.60ms", + "cpu": "6245.1%", + "memory": "204MiB", "connections": 4096, "threads": 64, "duration": "5s", "pipeline": 1, - "bandwidth": "7.30GB/s", - "input_bw": "102.85MB/s", - "reconnects": 430637, - "status_2xx": 10784537, + "bandwidth": "7.32GB/s", + "input_bw": "103.13MB/s", + "reconnects": 431528, + "status_2xx": 10813836, "status_3xx": 0, "status_4xx": 0, "status_5xx": 0 diff --git a/site/data/json-comp-16384.json b/site/data/json-comp-16384.json index 565ead1e9..03d62ac0d 100644 --- a/site/data/json-comp-16384.json +++ b/site/data/json-comp-16384.json @@ -1202,19 +1202,19 @@ { "framework": "vanilla-epoll", "language": "V", - "rps": 2298436, - "avg_latency": "6.75ms", - "p99_latency": "171.60ms", - "cpu": "6020.2%", - "memory": "261MiB", + "rps": 2307223, + "avg_latency": "6.78ms", + "p99_latency": "171.40ms", + "cpu": "6099.1%", + "memory": "271MiB", "connections": 16384, "threads": 64, "duration": "5s", "pipeline": 1, - "bandwidth": "3.67GB/s", - "input_bw": "170.97MB/s", - "reconnects": 459106, - "status_2xx": 11492180, + "bandwidth": "3.68GB/s", + "input_bw": "171.63MB/s", + "reconnects": 460880, + "status_2xx": 11536119, "status_3xx": 0, "status_4xx": 0, "status_5xx": 0 diff --git a/site/data/json-comp-4096.json b/site/data/json-comp-4096.json index eaeb7f406..f2d987ab0 100644 --- a/site/data/json-comp-4096.json +++ b/site/data/json-comp-4096.json @@ -1202,19 +1202,19 @@ { "framework": "vanilla-epoll", "language": "V", - "rps": 2324142, - "avg_latency": "1.58ms", - "p99_latency": "37.80ms", - "cpu": "6278.4%", - "memory": "152MiB", + "rps": 2331185, + "avg_latency": "1.59ms", + "p99_latency": "38.80ms", + "cpu": "6273.0%", + "memory": "151MiB", "connections": 4096, "threads": 64, "duration": "5s", "pipeline": 1, - "bandwidth": "3.71GB/s", - "input_bw": "172.89MB/s", - "reconnects": 464468, - "status_2xx": 11620712, + "bandwidth": "3.72GB/s", + "input_bw": "173.41MB/s", + "reconnects": 465872, + "status_2xx": 11655926, "status_3xx": 0, "status_4xx": 0, "status_5xx": 0 diff --git a/site/data/json-comp-512.json b/site/data/json-comp-512.json index 079725777..5ec1fef71 100644 --- a/site/data/json-comp-512.json +++ b/site/data/json-comp-512.json @@ -1202,19 +1202,19 @@ { "framework": "vanilla-epoll", "language": "V", - "rps": 2089475, - "avg_latency": "122us", - "p99_latency": "921us", - "cpu": "6244.9%", - "memory": "95MiB", + "rps": 2114605, + "avg_latency": "123us", + "p99_latency": "1.34ms", + "cpu": "6239.6%", + "memory": "90MiB", "connections": 512, "threads": 64, "duration": "5s", "pipeline": 1, - "bandwidth": "3.34GB/s", - "input_bw": "155.43MB/s", - "reconnects": 417817, - "status_2xx": 10447377, + "bandwidth": "3.38GB/s", + "input_bw": "157.30MB/s", + "reconnects": 422809, + "status_2xx": 10573029, "status_3xx": 0, "status_4xx": 0, "status_5xx": 0 diff --git a/site/data/json-tls-4096.json b/site/data/json-tls-4096.json index e41e4064f..834141d2a 100644 --- a/site/data/json-tls-4096.json +++ b/site/data/json-tls-4096.json @@ -849,18 +849,18 @@ { "framework": "vanilla-epoll", "language": "V", - "rps": 1500569, - "avg_latency": "21.38ms", - "p99_latency": "1.09s", - "cpu": "5941.1%", - "memory": "398MiB", + "rps": 1512762, + "avg_latency": "20.09ms", + "p99_latency": "1.10s", + "cpu": "6070.4%", + "memory": "343MiB", "connections": 4096, "threads": 64, "duration": "5s", "pipeline": 1, - "bandwidth": "5.08GB", + "bandwidth": "5.12GB", "reconnects": 0, - "status_2xx": 7651762, + "status_2xx": 7715991, "status_3xx": 0, "status_4xx": 0, "status_5xx": 0 diff --git a/site/data/limited-conn-4096.json b/site/data/limited-conn-4096.json index 6a644bb22..89ef21dcc 100644 --- a/site/data/limited-conn-4096.json +++ b/site/data/limited-conn-4096.json @@ -1731,19 +1731,19 @@ { "framework": "vanilla-epoll", "language": "V", - "rps": 1023743, - "avg_latency": "3.97ms", - "p99_latency": "39.90ms", - "cpu": "2947.4%", - "memory": "71MiB", + "rps": 1016695, + "avg_latency": "4.01ms", + "p99_latency": "40.20ms", + "cpu": "2924.5%", + "memory": "72MiB", "connections": 4096, "threads": 64, "duration": "5s", "pipeline": 1, - "bandwidth": "104.43MB/s", - "input_bw": "79.08MB/s", - "reconnects": 511950, - "status_2xx": 5118715, + "bandwidth": "103.71MB/s", + "input_bw": "78.54MB/s", + "reconnects": 508392, + "status_2xx": 5083479, "status_3xx": 0, "status_4xx": 0, "status_5xx": 0 diff --git a/site/data/limited-conn-512.json b/site/data/limited-conn-512.json index 1832113e2..faa52baf1 100644 --- a/site/data/limited-conn-512.json +++ b/site/data/limited-conn-512.json @@ -1731,19 +1731,19 @@ { "framework": "vanilla-epoll", "language": "V", - "rps": 1001860, - "avg_latency": "502us", + "rps": 1000323, + "avg_latency": "503us", "p99_latency": "4.75ms", - "cpu": "3187.8%", + "cpu": "3211.3%", "memory": "67MiB", "connections": 512, "threads": 64, "duration": "5s", "pipeline": 1, - "bandwidth": "102.21MB/s", - "input_bw": "77.39MB/s", - "reconnects": 500932, - "status_2xx": 5009300, + "bandwidth": "102.05MB/s", + "input_bw": "77.27MB/s", + "reconnects": 500155, + "status_2xx": 5001619, "status_3xx": 0, "status_4xx": 0, "status_5xx": 0 diff --git a/site/data/pipelined-4096.json b/site/data/pipelined-4096.json index 9b193e47f..4397d258e 100644 --- a/site/data/pipelined-4096.json +++ b/site/data/pipelined-4096.json @@ -1674,18 +1674,18 @@ { "framework": "vanilla-epoll", "language": "V", - "rps": 40010412, + "rps": 39964537, "avg_latency": "1.64ms", - "p99_latency": "9.81ms", - "cpu": "6510.3%", + "p99_latency": "9.74ms", + "cpu": "6726.9%", "memory": "164MiB", "connections": 4096, "threads": 64, "duration": "5s", "pipeline": 16, - "bandwidth": "3.99GB/s", + "bandwidth": "3.98GB/s", "reconnects": 0, - "status_2xx": 200052064, + "status_2xx": 199822687, "status_3xx": 0, "status_4xx": 0, "status_5xx": 0 diff --git a/site/data/pipelined-512.json b/site/data/pipelined-512.json index 12a90efef..ff4411d2d 100644 --- a/site/data/pipelined-512.json +++ b/site/data/pipelined-512.json @@ -1674,18 +1674,18 @@ { "framework": "vanilla-epoll", "language": "V", - "rps": 39802105, + "rps": 39805827, "avg_latency": "205us", - "p99_latency": "3.58ms", - "cpu": "6711.6%", - "memory": "73MiB", + "p99_latency": "3.53ms", + "cpu": "6675.0%", + "memory": "75MiB", "connections": 512, "threads": 64, "duration": "5s", "pipeline": 16, - "bandwidth": "3.97GB/s", + "bandwidth": "3.96GB/s", "reconnects": 0, - "status_2xx": 199010528, + "status_2xx": 199029136, "status_3xx": 0, "status_4xx": 0, "status_5xx": 0 diff --git a/site/data/static-1024.json b/site/data/static-1024.json index 5c1526d54..d6a1ceb92 100644 --- a/site/data/static-1024.json +++ b/site/data/static-1024.json @@ -1370,18 +1370,18 @@ { "framework": "vanilla-epoll", "language": "V", - "rps": 1794986, - "avg_latency": "342.66us", - "p99_latency": "12.92ms", - "cpu": "5727.8%", + "rps": 1827711, + "avg_latency": "336.17us", + "p99_latency": "4.21ms", + "cpu": "5623.2%", "memory": "97MiB", "connections": 1024, "threads": 64, "duration": "5s", "pipeline": 1, - "bandwidth": "27.56GB", + "bandwidth": "28.06GB", "reconnects": 0, - "status_2xx": 9154797, + "status_2xx": 9321701, "status_3xx": 0, "status_4xx": 0, "status_5xx": 0 diff --git a/site/data/static-4096.json b/site/data/static-4096.json index cf645b80a..eaaf04367 100644 --- a/site/data/static-4096.json +++ b/site/data/static-4096.json @@ -1370,18 +1370,18 @@ { "framework": "vanilla-epoll", "language": "V", - "rps": 1780314, - "avg_latency": "1.24ms", - "p99_latency": "7.56ms", - "cpu": "5623.0%", + "rps": 1826024, + "avg_latency": "1.23ms", + "p99_latency": "5.50ms", + "cpu": "5386.8%", "memory": "224MiB", "connections": 4096, "threads": 64, "duration": "5s", "pipeline": 1, - "bandwidth": "27.34GB", + "bandwidth": "28.04GB", "reconnects": 0, - "status_2xx": 9080690, + "status_2xx": 9311644, "status_3xx": 0, "status_4xx": 0, "status_5xx": 0 diff --git a/site/data/static-6800.json b/site/data/static-6800.json index 9e5fe0789..bb3932349 100644 --- a/site/data/static-6800.json +++ b/site/data/static-6800.json @@ -1370,18 +1370,18 @@ { "framework": "vanilla-epoll", "language": "V", - "rps": 1734894, - "avg_latency": "2.12ms", - "p99_latency": "26.51ms", - "cpu": "5339.1%", - "memory": "313MiB", + "rps": 1772092, + "avg_latency": "2.06ms", + "p99_latency": "31.00ms", + "cpu": "5258.9%", + "memory": "309MiB", "connections": 6800, "threads": 64, "duration": "5s", "pipeline": 1, - "bandwidth": "26.64GB", + "bandwidth": "27.21GB", "reconnects": 0, - "status_2xx": 8820236, + "status_2xx": 9029759, "status_3xx": 0, "status_4xx": 0, "status_5xx": 0 diff --git a/site/data/upload-256.json b/site/data/upload-256.json index daa8c5c0a..97224eb9d 100644 --- a/site/data/upload-256.json +++ b/site/data/upload-256.json @@ -1321,19 +1321,19 @@ { "framework": "vanilla-epoll", "language": "V", - "rps": 3017, - "avg_latency": "78.04ms", - "p99_latency": "255.40ms", - "cpu": "3658.0%", - "memory": "338MiB", + "rps": 3001, + "avg_latency": "78.28ms", + "p99_latency": "262.40ms", + "cpu": "3686.4%", + "memory": "301MiB", "connections": 256, "threads": 64, "duration": "5s", "pipeline": 1, - "bandwidth": "330.76KB/s", - "input_bw": "23.93GB/s", - "reconnects": 2996, - "status_2xx": 15179, + "bandwidth": "329.07KB/s", + "input_bw": "23.80GB/s", + "reconnects": 2980, + "status_2xx": 15099, "status_3xx": 0, "status_4xx": 0, "status_5xx": 0 diff --git a/site/data/upload-32.json b/site/data/upload-32.json index 32e209931..8a8f579d7 100644 --- a/site/data/upload-32.json +++ b/site/data/upload-32.json @@ -1321,19 +1321,19 @@ { "framework": "vanilla-epoll", "language": "V", - "rps": 2958, - "avg_latency": "10.77ms", - "p99_latency": "34.30ms", - "cpu": "2036.3%", - "memory": "134MiB", + "rps": 2969, + "avg_latency": "10.74ms", + "p99_latency": "34.40ms", + "cpu": "2030.2%", + "memory": "132MiB", "connections": 32, "threads": 64, "duration": "5s", "pipeline": 1, - "bandwidth": "324.32KB/s", - "input_bw": "23.46GB/s", - "reconnects": 2964, - "status_2xx": 14822, + "bandwidth": "325.46KB/s", + "input_bw": "23.55GB/s", + "reconnects": 2972, + "status_2xx": 14877, "status_3xx": 0, "status_4xx": 0, "status_5xx": 0 diff --git a/site/static/logs/api-16/1024/vanilla-epoll.log b/site/static/logs/api-16/1024/vanilla-epoll.log index 6af0df417..9de548a21 100644 --- a/site/static/logs/api-16/1024/vanilla-epoll.log +++ b/site/static/logs/api-16/1024/vanilla-epoll.log @@ -1,5 +1,5 @@ -[socket] SO_REUSEPORT enabled for load balancing [socket] Binding to 0.0.0.0:8081 +[socket] SO_REUSEPORT enabled for load balancing [socket] Binding to 0.0.0.0:8080 [socket] SO_REUSEPORT enabled for load balancing listening on http://localhost:8081/ diff --git a/site/static/logs/async-db/1024/vanilla-epoll.log b/site/static/logs/async-db/1024/vanilla-epoll.log index 029eef843..8c4e788f2 100644 --- a/site/static/logs/async-db/1024/vanilla-epoll.log +++ b/site/static/logs/async-db/1024/vanilla-epoll.log @@ -1,6 +1,6 @@ -[socket] SO_REUSEPORT enabled for load balancing [socket] Binding to 0.0.0.0:8081 -[socket] Binding to 0.0.0.0:8080 [socket] SO_REUSEPORT enabled for load balancing +[socket] SO_REUSEPORT enabled for load balancing +[socket] Binding to 0.0.0.0:8080 listening on http://localhost:8080/ listening on http://localhost:8081/ diff --git a/site/static/logs/baseline/4096/vanilla-epoll.log b/site/static/logs/baseline/4096/vanilla-epoll.log index 7e0c123c0..6af0df417 100644 --- a/site/static/logs/baseline/4096/vanilla-epoll.log +++ b/site/static/logs/baseline/4096/vanilla-epoll.log @@ -1,6 +1,6 @@ -[socket] Binding to 0.0.0.0:8081 -[socket] SO_REUSEPORT enabled for load balancing [socket] SO_REUSEPORT enabled for load balancing +[socket] Binding to 0.0.0.0:8081 [socket] Binding to 0.0.0.0:8080 +[socket] SO_REUSEPORT enabled for load balancing listening on http://localhost:8081/ listening on http://localhost:8080/ diff --git a/site/static/logs/baseline/512/vanilla-epoll.log b/site/static/logs/baseline/512/vanilla-epoll.log index 7e0c123c0..9de548a21 100644 --- a/site/static/logs/baseline/512/vanilla-epoll.log +++ b/site/static/logs/baseline/512/vanilla-epoll.log @@ -1,6 +1,6 @@ [socket] Binding to 0.0.0.0:8081 [socket] SO_REUSEPORT enabled for load balancing -[socket] SO_REUSEPORT enabled for load balancing [socket] Binding to 0.0.0.0:8080 +[socket] SO_REUSEPORT enabled for load balancing listening on http://localhost:8081/ listening on http://localhost:8080/ diff --git a/site/static/logs/crud/4096/vanilla-epoll.log b/site/static/logs/crud/4096/vanilla-epoll.log index dee8f8a58..9f2090659 100644 --- a/site/static/logs/crud/4096/vanilla-epoll.log +++ b/site/static/logs/crud/4096/vanilla-epoll.log @@ -1,6 +1,6 @@ +[socket] SO_REUSEPORT enabled for load balancing [socket] Binding to 0.0.0.0:8081 [socket] SO_REUSEPORT enabled for load balancing [socket] Binding to 0.0.0.0:8080 -[socket] SO_REUSEPORT enabled for load balancing -listening on http://localhost:8080/ listening on http://localhost:8081/ +listening on http://localhost:8080/ diff --git a/site/static/logs/json-comp/16384/vanilla-epoll.log b/site/static/logs/json-comp/16384/vanilla-epoll.log index 761cac6b1..6af0df417 100644 --- a/site/static/logs/json-comp/16384/vanilla-epoll.log +++ b/site/static/logs/json-comp/16384/vanilla-epoll.log @@ -1,6 +1,6 @@ +[socket] SO_REUSEPORT enabled for load balancing [socket] Binding to 0.0.0.0:8081 [socket] Binding to 0.0.0.0:8080 [socket] SO_REUSEPORT enabled for load balancing -[socket] SO_REUSEPORT enabled for load balancing -listening on http://localhost:8080/ listening on http://localhost:8081/ +listening on http://localhost:8080/ diff --git a/site/static/logs/json-comp/4096/vanilla-epoll.log b/site/static/logs/json-comp/4096/vanilla-epoll.log index 6af0df417..9de548a21 100644 --- a/site/static/logs/json-comp/4096/vanilla-epoll.log +++ b/site/static/logs/json-comp/4096/vanilla-epoll.log @@ -1,5 +1,5 @@ -[socket] SO_REUSEPORT enabled for load balancing [socket] Binding to 0.0.0.0:8081 +[socket] SO_REUSEPORT enabled for load balancing [socket] Binding to 0.0.0.0:8080 [socket] SO_REUSEPORT enabled for load balancing listening on http://localhost:8081/ diff --git a/site/static/logs/json-comp/512/vanilla-epoll.log b/site/static/logs/json-comp/512/vanilla-epoll.log index 029eef843..9de548a21 100644 --- a/site/static/logs/json-comp/512/vanilla-epoll.log +++ b/site/static/logs/json-comp/512/vanilla-epoll.log @@ -1,6 +1,6 @@ -[socket] SO_REUSEPORT enabled for load balancing [socket] Binding to 0.0.0.0:8081 +[socket] SO_REUSEPORT enabled for load balancing [socket] Binding to 0.0.0.0:8080 [socket] SO_REUSEPORT enabled for load balancing -listening on http://localhost:8080/ listening on http://localhost:8081/ +listening on http://localhost:8080/ diff --git a/site/static/logs/json-tls/4096/vanilla-epoll.log b/site/static/logs/json-tls/4096/vanilla-epoll.log index 58349c714..5a43dbbde 100644 --- a/site/static/logs/json-tls/4096/vanilla-epoll.log +++ b/site/static/logs/json-tls/4096/vanilla-epoll.log @@ -1,7 +1,7 @@ -[socket] SO_REUSEPORT enabled for load balancing [socket] Binding to 0.0.0.0:8081 [socket] Binding to 0.0.0.0:8080 [socket] SO_REUSEPORT enabled for load balancing +[socket] SO_REUSEPORT enabled for load balancing listening on http://localhost:8081/ listening on http://localhost:8080/ [ktls] engaged: kernel TLS TX+RX (TLS 1.3, AES-128-GCM) diff --git a/site/static/logs/json/4096/vanilla-epoll.log b/site/static/logs/json/4096/vanilla-epoll.log index 9de548a21..9f2090659 100644 --- a/site/static/logs/json/4096/vanilla-epoll.log +++ b/site/static/logs/json/4096/vanilla-epoll.log @@ -1,6 +1,6 @@ +[socket] SO_REUSEPORT enabled for load balancing [socket] Binding to 0.0.0.0:8081 [socket] SO_REUSEPORT enabled for load balancing [socket] Binding to 0.0.0.0:8080 -[socket] SO_REUSEPORT enabled for load balancing listening on http://localhost:8081/ listening on http://localhost:8080/ diff --git a/site/static/logs/limited-conn/4096/vanilla-epoll.log b/site/static/logs/limited-conn/4096/vanilla-epoll.log index 029eef843..6af0df417 100644 --- a/site/static/logs/limited-conn/4096/vanilla-epoll.log +++ b/site/static/logs/limited-conn/4096/vanilla-epoll.log @@ -2,5 +2,5 @@ [socket] Binding to 0.0.0.0:8081 [socket] Binding to 0.0.0.0:8080 [socket] SO_REUSEPORT enabled for load balancing -listening on http://localhost:8080/ listening on http://localhost:8081/ +listening on http://localhost:8080/ diff --git a/site/static/logs/limited-conn/512/vanilla-epoll.log b/site/static/logs/limited-conn/512/vanilla-epoll.log index 761cac6b1..9de548a21 100644 --- a/site/static/logs/limited-conn/512/vanilla-epoll.log +++ b/site/static/logs/limited-conn/512/vanilla-epoll.log @@ -1,6 +1,6 @@ [socket] Binding to 0.0.0.0:8081 -[socket] Binding to 0.0.0.0:8080 [socket] SO_REUSEPORT enabled for load balancing +[socket] Binding to 0.0.0.0:8080 [socket] SO_REUSEPORT enabled for load balancing -listening on http://localhost:8080/ listening on http://localhost:8081/ +listening on http://localhost:8080/ diff --git a/site/static/logs/pipelined/4096/vanilla-epoll.log b/site/static/logs/pipelined/4096/vanilla-epoll.log index 1c153209f..9de548a21 100644 --- a/site/static/logs/pipelined/4096/vanilla-epoll.log +++ b/site/static/logs/pipelined/4096/vanilla-epoll.log @@ -1,6 +1,6 @@ -[socket] SO_REUSEPORT enabled for load balancing -[socket] SO_REUSEPORT enabled for load balancing [socket] Binding to 0.0.0.0:8081 +[socket] SO_REUSEPORT enabled for load balancing [socket] Binding to 0.0.0.0:8080 -listening on http://localhost:8080/ +[socket] SO_REUSEPORT enabled for load balancing listening on http://localhost:8081/ +listening on http://localhost:8080/ diff --git a/site/static/logs/pipelined/512/vanilla-epoll.log b/site/static/logs/pipelined/512/vanilla-epoll.log index dee8f8a58..8c4e788f2 100644 --- a/site/static/logs/pipelined/512/vanilla-epoll.log +++ b/site/static/logs/pipelined/512/vanilla-epoll.log @@ -1,6 +1,6 @@ [socket] Binding to 0.0.0.0:8081 [socket] SO_REUSEPORT enabled for load balancing -[socket] Binding to 0.0.0.0:8080 [socket] SO_REUSEPORT enabled for load balancing +[socket] Binding to 0.0.0.0:8080 listening on http://localhost:8080/ listening on http://localhost:8081/ diff --git a/site/static/logs/static/1024/vanilla-epoll.log b/site/static/logs/static/1024/vanilla-epoll.log index 8c4e788f2..dee8f8a58 100644 --- a/site/static/logs/static/1024/vanilla-epoll.log +++ b/site/static/logs/static/1024/vanilla-epoll.log @@ -1,6 +1,6 @@ [socket] Binding to 0.0.0.0:8081 [socket] SO_REUSEPORT enabled for load balancing -[socket] SO_REUSEPORT enabled for load balancing [socket] Binding to 0.0.0.0:8080 +[socket] SO_REUSEPORT enabled for load balancing listening on http://localhost:8080/ listening on http://localhost:8081/ diff --git a/site/static/logs/static/4096/vanilla-epoll.log b/site/static/logs/static/4096/vanilla-epoll.log index 029eef843..daea85269 100644 --- a/site/static/logs/static/4096/vanilla-epoll.log +++ b/site/static/logs/static/4096/vanilla-epoll.log @@ -1,6 +1,6 @@ [socket] SO_REUSEPORT enabled for load balancing [socket] Binding to 0.0.0.0:8081 -[socket] Binding to 0.0.0.0:8080 [socket] SO_REUSEPORT enabled for load balancing +[socket] Binding to 0.0.0.0:8080 listening on http://localhost:8080/ listening on http://localhost:8081/ diff --git a/site/static/logs/static/6800/vanilla-epoll.log b/site/static/logs/static/6800/vanilla-epoll.log index 9de548a21..6af0df417 100644 --- a/site/static/logs/static/6800/vanilla-epoll.log +++ b/site/static/logs/static/6800/vanilla-epoll.log @@ -1,5 +1,5 @@ -[socket] Binding to 0.0.0.0:8081 [socket] SO_REUSEPORT enabled for load balancing +[socket] Binding to 0.0.0.0:8081 [socket] Binding to 0.0.0.0:8080 [socket] SO_REUSEPORT enabled for load balancing listening on http://localhost:8081/ diff --git a/site/static/logs/upload/256/vanilla-epoll.log b/site/static/logs/upload/256/vanilla-epoll.log index 029eef843..eee655770 100644 --- a/site/static/logs/upload/256/vanilla-epoll.log +++ b/site/static/logs/upload/256/vanilla-epoll.log @@ -1,6 +1,6 @@ [socket] SO_REUSEPORT enabled for load balancing +[socket] SO_REUSEPORT enabled for load balancing [socket] Binding to 0.0.0.0:8081 [socket] Binding to 0.0.0.0:8080 -[socket] SO_REUSEPORT enabled for load balancing -listening on http://localhost:8080/ listening on http://localhost:8081/ +listening on http://localhost:8080/ diff --git a/site/static/logs/upload/32/vanilla-epoll.log b/site/static/logs/upload/32/vanilla-epoll.log index 8c4e788f2..9f2090659 100644 --- a/site/static/logs/upload/32/vanilla-epoll.log +++ b/site/static/logs/upload/32/vanilla-epoll.log @@ -1,6 +1,6 @@ -[socket] Binding to 0.0.0.0:8081 [socket] SO_REUSEPORT enabled for load balancing +[socket] Binding to 0.0.0.0:8081 [socket] SO_REUSEPORT enabled for load balancing [socket] Binding to 0.0.0.0:8080 -listening on http://localhost:8080/ listening on http://localhost:8081/ +listening on http://localhost:8080/