Skip to content

Re-enable Hical after fixing TCP fragmentation chunked-decode bug - #1431

Merged
MDA2AV merged 2 commits into
MDA2AV:mainfrom
Hical61:reenable-hical-fragfix
Sep 3, 2026
Merged

Re-enable Hical after fixing TCP fragmentation chunked-decode bug#1431
MDA2AV merged 2 commits into
MDA2AV:mainfrom
Hical61:reenable-hical-fragfix

Conversation

@Hical61

@Hical61 Hical61 commented Sep 3, 2026

Copy link
Copy Markdown
Contributor

Background

Hical was disabled (enabled: false) and its results dropped in #1289 after failing the exhaustive TCP fragmentation check in #1285 — about 9% of split offsets across nine request shapes returned 400.

Root cause

Hical uses picohttpparser for zero-copy header parsing and a custom chunked-body decoder. The old decoder tracked its position with an encodeStart offset and advanced it by phr_decode_chunked's output byte count (encodeStart += decodeBufLen), treating output length as consumption. When a chunk frame arrived split across multiple TCP reads — with the split point inside the frame (mid chunk-size hex, between CR/LF, etc.) — the offset drifted and the decoder misreported a malformed-encoding error, answering 400.

Per the #1289 commit message, this is the "narrow slice" class of defect: an edge case at specific split points, not a parser that cannot reassemble at all.

Fix

Fixed upstream in Hical61/Hical commit a5abb27c59e604a5fe15dfde49c634de5a13efce: the manual offset tracking was removed in favor of re-decoding unconsumed data from the front on each pass, relying on phr_decode_chunked's decoder state machine to carry progress across recv() calls. Three fragmentation regression tests were added (ChunkedRequestBodyFragmented, ChunkedRequestBodySplitEveryByte, ChunkedRequestWithPipelinedTail), with ChunkedRequestBodySplitEveryByte mirroring this exhaustive split sweep.

Changes

  • frameworks/hical/meta.json: enabled: falseenabled: true
  • frameworks/hical/Dockerfile: HICAL_REFa5abb27c59e604a5fe15dfde49c634de5a13efce

Verification

Locally reproduced the full post-fix request path (header parsing + phr_decode_chunked + pipeline tail write-back) in C and exhaustively verified all nine validate-frag.py request shapes at every byte offset (1,107 split points total) — zero failures, no remaining split-boundary issues.

Please re-run the benchmark and the exhaustive fragmentation validation.

Hical was disabled in MDA2AV#1289 after failing the exhaustive TCP fragmentation
check (MDA2AV#1285): ~9% of split offsets on chunked POST requests were answered
400 Bad Request.

Root cause: the chunked-body decoder tracked its position with an
encodeStart offset and advanced it by phr_decode_chunked's *output* byte
count, treating output length as consumption. When a chunk frame was split
across TCP reads at a point inside the frame, the offset drifted and the
decoder misreported a malformed-encoding error. This is the 'narrow slice'
class of defect from MDA2AV#1289, not a parser that cannot reassemble.

Fixed upstream in Hical61/Hical commit a5abb27, which drops the manual
offset tracking and re-decodes unconsumed data from the front each pass,
relying on phr_decode_chunked's decoder state machine across recv() calls.
Three fragmentation regression tests were added.

This PR:
- re-enables the entry (enabled: false -> true)
- pins HICAL_REF to a5abb27c59e604a5fe15dfde49c634de5a13efce

Please re-run the benchmark and the exhaustive fragmentation validation.
@Kaliumhexacyanoferrat

Copy link
Copy Markdown
Collaborator

Validation passed, so this worked 🙂

/benchmark -f hical --save

@github-actions

github-actions Bot commented Sep 3, 2026

Copy link
Copy Markdown
Contributor

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

@github-actions

github-actions Bot commented Sep 3, 2026

Copy link
Copy Markdown
Contributor

Benchmark Results

Framework: hical | Test: all tests

No results captured

Full log
[info] available CPUs: 128
[info] framework: hical (hical, C++)
[info] subscribed tests: baseline,latency-1m,latency-10k,pipelined,limited-conn,json-comp,echo-ws
[info] building image: httparena-hical
#0 building with "default" instance using docker driver

#1 [internal] load build definition from Dockerfile
#1 transferring dockerfile: 1.67kB done
#1 DONE 0.0s

#2 [internal] load metadata for docker.io/library/ubuntu:24.04
#2 DONE 0.0s

#3 [internal] load .dockerignore
#3 transferring context: 2B done
#3 DONE 0.0s

#4 [builder 2/5] RUN apt-get update && apt-get install -y --no-install-recommends         ca-certificates gcc-14 g++-14 cmake ninja-build git         libboost-all-dev libssl-dev libgtest-dev zlib1g-dev     && rm -rf /var/lib/apt/lists/*
#4 CACHED

#5 [builder 3/5] WORKDIR /src
#5 CACHED

#6 [builder 1/5] FROM docker.io/library/ubuntu:24.04@sha256:c4a8d5503dfb2a3eb8ab5f807da5bc69a85730fb49b5cfca2330194ebcc41c7b
#6 resolve docker.io/library/ubuntu:24.04@sha256:c4a8d5503dfb2a3eb8ab5f807da5bc69a85730fb49b5cfca2330194ebcc41c7b 0.0s done
#6 CACHED

#7 [stage-1 2/3] RUN apt-get update && apt-get install -y --no-install-recommends         libboost-json1.83.0 libssl3t64 zlib1g     && rm -rf /var/lib/apt/lists/*
#7 0.544 Get:1 http://security.ubuntu.com/ubuntu noble-security InRelease [126 kB]
#7 0.737 Get:2 http://archive.ubuntu.com/ubuntu noble InRelease [256 kB]
#7 0.777 Get:3 http://security.ubuntu.com/ubuntu noble-security/restricted amd64 Packages [1730 kB]
#7 ...

#8 [builder 4/5] RUN git init . &&     git remote add origin https://github.com/Hical61/Hical.git &&     git fetch --depth 1 origin a5abb27c59e604a5fe15dfde49c634de5a13efce &&     git checkout FETCH_HEAD
#8 0.382 hint: Using 'master' as the name for the initial branch. This default branch name
#8 0.382 hint: is subject to change. To configure the initial branch name to use in all
#8 0.382 hint: of your new repositories, which will suppress this warning, call:
#8 0.382 hint: 
#8 0.382 hint: 	git config --global init.defaultBranch <name>
#8 0.382 hint: 
#8 0.382 hint: Names commonly chosen instead of 'master' are 'main', 'trunk' and
#8 0.382 hint: 'development'. The just-created branch can be renamed via this command:
#8 0.382 hint: 
#8 0.382 hint: 	git branch -m <name>
#8 0.383 Initialized empty Git repository in /src/.git/
#8 0.894 fatal: could not read Username for 'https://github.com': No such device or address
#8 0.896 fatal: expected flush after ref listing
#8 ERROR: process "/bin/sh -c git init . &&     git remote add origin ${HICAL_REPO} &&     git fetch --depth 1 origin ${HICAL_REF} &&     git checkout FETCH_HEAD" did not complete successfully: exit code: 128

#7 [stage-1 2/3] RUN apt-get update && apt-get install -y --no-install-recommends         libboost-json1.83.0 libssl3t64 zlib1g     && rm -rf /var/lib/apt/lists/*
#7 1.084 Get:4 http://security.ubuntu.com/ubuntu noble-security/main amd64 Packages [1211 kB]
#7 CANCELED
------
 > [builder 4/5] RUN git init . &&     git remote add origin https://github.com/Hical61/Hical.git &&     git fetch --depth 1 origin a5abb27c59e604a5fe15dfde49c634de5a13efce &&     git checkout FETCH_HEAD:
0.382 hint: 
0.382 hint: 	git config --global init.defaultBranch <name>
0.382 hint: 
0.382 hint: Names commonly chosen instead of 'master' are 'main', 'trunk' and
0.382 hint: 'development'. The just-created branch can be renamed via this command:
0.382 hint: 
0.382 hint: 	git branch -m <name>
0.383 Initialized empty Git repository in /src/.git/
0.894 fatal: could not read Username for 'https://github.com': No such device or address
0.896 fatal: expected flush after ref listing
------
Dockerfile:23
--------------------
  22 |     WORKDIR /src
  23 | >>> RUN git init . && \
  24 | >>>     git remote add origin ${HICAL_REPO} && \
  25 | >>>     git fetch --depth 1 origin ${HICAL_REF} && \
  26 | >>>     git checkout FETCH_HEAD
  27 |     
--------------------
ERROR: failed to build: failed to solve: process "/bin/sh -c git init . &&     git remote add origin ${HICAL_REPO} &&     git fetch --depth 1 origin ${HICAL_REF} &&     git checkout FETCH_HEAD" did not complete successfully: exit code: 128
[FAIL] docker build failed
[info] restoring loopback MTU to 65536

@Hical61

Hical61 commented Sep 3, 2026

Copy link
Copy Markdown
Contributor Author

@Kaliumhexacyanoferrat Could you please run CI again

@MDA2AV

MDA2AV commented Sep 3, 2026

Copy link
Copy Markdown
Owner

/benchmark -f hical --save

@github-actions

github-actions Bot commented Sep 3, 2026

Copy link
Copy Markdown
Contributor

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

@github-actions

github-actions Bot commented Sep 3, 2026

Copy link
Copy Markdown
Contributor

Benchmark Results

Framework: hical | Test: all tests

Test Conn RPS Rate CPU/req p99 p99.9 CPU Mem Δ RPS Δ Mem
baseline 4096 3,316,539 6610.9% 131MiB ~0% ~0%
pipelined 4096 4,929,317 6308.7% 136MiB ~0% ~0%
limited-conn 4096 2,405,974 6435.4% 132MiB ~0% ~0%
json-comp 4096 260,323 6550.4% 226MiB ~0% ~0%
json-comp 16384 256,005 6227.8% 637MiB ~0% ~0%
echo-ws 512 3,390,647 6479.2% 46MiB ~0% ~0%
echo-ws 4096 3,678,523 6550.2% 157MiB ~0% ~0%
echo-ws 16384 3,351,504 6531.6% 509MiB ~0% ~0%
latency-1m 1024 997,737 0.9977 24.84us 180.0us 954.0us 2735.3% 50MiB ~0% ~0%
latency-10k 1024 9,983 0.9983 29.06us 114.0us 177.0us 27.7% 52MiB ~0% ~0%
Full log

  16771769 frames sent in 5.00s, 16755385 frames received
  Throughput: 3.35M req/s
  Bandwidth:  22.77MB/s
  WS upgrades: 16384
  WS frames:   16755385
  Latency samples: 16755385 / 16755385 responses (100.0%)
[info] CPU 6232.8% | Mem 517MiB

=== Best: 3351504 req/s (CPU: 6531.6%, Mem: 509MiB) ===
[info] saved results/echo-ws/16384/hical.json
httparena-bench-hical
httparena-bench-hical
[info] skip: hical does not subscribe to echo-ws-pipeline
[info] skip: hical does not subscribe to echo-ws-limited

==============================================
=== hical / latency-1m / 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": 1000000, "timeout_ms": 2000, "deadline_ms": 0, "deadline_abort": false, "record_timeouts": true },
  "duration_s": 20.004,
  "requests": 19964203,
  "bytes": 2934737841,
  "achieved_rate": 998011.00,
  "target_rate": 1000000,
  "target_rate_end": 1000000,
  "rate_ratio": 0.9980,
  "bytes_per_sec": 146707617.05,
  "error_rate": 0.000000,
  "max_schedule_lag_us": 63078,
  "latency_us": {
    "min": 24, "mean": 120.8, "stdev": 982.7, "max": 64127,
    "p50": 81, "p75": 97, "p90": 119, "p99": 176, "p99_9": 15612, "p99_99": 43440
  },
  "status_codes": { "1xx": 0, "2xx": 19964203, "3xx": 0, "4xx": 0, "5xx": 0 },
  "errors": { "connect": 0, "read": 0, "write": 0, "timeout": 0, "deadline": 0, "non_2xx_3xx": 0 },
  "latency_histogram": "HISTFAAAEed4nC1YbawdxXne3TNn7ngYJtNhWCbDZrvZLMvJ4eRyubq1UosqCClVlD+NIpSq+VNVyo9+oPzoT8QPQ5FLKGlcoA51qZu61EIJsVyHUotalFDkEkiIS4Fa6IoQ6lDLpRaixkLIRX2e2etr+56zO/PO+z7v837M29zz4FVF0Zwqpj+znd9l/vLgHxefe3d6cGNlbv7amfJQdXx2vzgmX9BvuvPXPrzc/ty53zp+53N/W75ypnz2T6vtV6t7vzs7/U3xyL75/d+WB59bO/lHu+77T33+38y9P7Nn/8dduveqd39w9amfXHPkw4/f/61m+6ftAxe6s3/2qQOHr3vtxPUfvvjph35ww/kDn3nr2fUDP7/x9KWNx1686fj3N88+v3no8uazFzaP/2zz9LHN7f+46fX7bzr/lxun99/4wl+vv7b3M49s3/DAieXJg59+9xfXX3x2fGH/dW/sHZ57tT966pN7D3bf+bB979Inzv2kOfev1x4/mk4d/vhbfxcvHbnm4FP16b+/+vSL4cCZqw697/f+iX/j0V86/CN35NzHLh782H0/tK/835VPfe/Kh98xl//GvPXzKw59+4pD/6W3j+rn/3fXPSd3vfytXXe/oU4eVXffpS7++9o9R9ZO3rN27DV57p/lk38hT74/v/zT+WP/MH/8wPzpy+Kxt8SZfxEnHhcf7Rf77hL3//ds/6uzS8/Mjn1/9uZfzQ58Y/b6+9VL56sLZ6pzL1aP/2P1nePVqUeq1/+8On5f9dGH5bl3y4d+Ub57prz4SnnoR+XrPywf+qdy77Hy5e+VZx8tnzhYPv9guf3N8sffKJ+8qzx+5zt3PPX1l/5g/++99DvP/fb2Vw//5r7b3v6Nt7/49Bee/PwTt+7/tff2PPSrF3Yf/JUnNi/eeGj9gxvevOGZxdvX773umU9tf/Jcd/KXT7SXr3302sPpfPzuNR/W++rzVx8Pj191xN/nj7tLbp87aY/Zj8zbV+43Z694W79wxXl9Sm/v2lZHd72z9vLaB2sX5ANrz6ydktvyZXlx/sL8jfmR+Yn5s/OPxIH5O+Ip8cHsx7PLs+Ozs7NTs2Ozl2cPz7arD6r3qtPVa9WT1Znqmer56nH8e6I6Un1QXigvl2+WZ8uL5Xb5fHm+fKw8Wj5dvlEeLE+Up8rD5RPlPfi5D/+OlHeXX7/jznvL27+2r7zj9r3lH37ptt/9yu/f/tUvf+nLX7j5i7u3brvt12/dc/PuWz+75yvri5uX3cZiOdwybrXDYnNr3FitLxarxdCv2s1uHNp2aLtubNPYj+2y8SGGOCZ8b23okq/rrvY+Kd867521TfK+t6EOpvbBRxe0tS44myqvrTPW+WiNVSYYk7SxVptG1c4LaZ3TLlinVW0VBGgrbbB44WpnNZZ6g/91bbRQNgqjrJRWGGGMt1YpHVQyRmOpNw7rVKWwi5+8NlJxrzNKas1t0liNPUYVSuGb5gqtsFypykCyNgqnCGGlswJfhDLO4ruiYHyvIKhQwklXYZcKik9kJbVUSlTKCO18VVXYhq8VDtJ8rIUUWle20pWoJE6UosAp2FQJqfBjrJGi0rYyBQyrFARqrtQQLfBdQgWYIiEN50hlhcRDARPw3OJZlokdkCmL/MsIUUAfaaGfrDQ2VzRVFZCDrRWkQxMcRfUKUeSztDB4L7iFZ/KlEJQMm4kCrai4taAIKgW7sRJ/YbSQheAHaaFSkfUWgr8KCfGVALISileESnIv/+IrFsAEqAgIsASS+JjyqQTWFNBxworysb2QFS3Iv4ykIO6DmgHvsV6LWfaKkoWmbyTcMadUVc2gILEtIA67CyBOIlBPeJnK4iHNJ2ySFtCf/IF2JtvOzzOqziX8QyuhGgQWeSXsVQXVEVyg6HSiA8Fi2pB1F/kHthW0eAYrd6RXYl7NuAlC55N0KIQnPETuaE5BBQHDJz6CStlBeDzLpKHcucxoFpQuaFjWDtqoHb1nVd4K0PLXyTE4SWVhWUPuA2rUCcgqgDOTBGlHAQqFDCzGGz4oyJZq2gnVCGbGsCAZSI9ZXplPqoTJdmfcVTXPWFA34pWBl1nXiU5VtpEkEtxV8CEXz4meyMElCE62Us552GSwmPytsnIzCsqewVkFIafBdFreXmVqiawDGEjfFNNScoxoQVkBFlEVqpDZMcvwVTsg05NUMPN4+kO8ZBZEFDIRRIZCZhR5qpye0VNEaUK3YDiDpYJuI2zFBNEc5tJ5s+lMxSjJhOM7qEilqwmXTDLqlGOLsciIwgtTTXFWZGspnzLoHbE2qY+TNV/PAXZ2yEQYLs4Y5Qy1Y3lGbE6V6JOCnOETBtFEvipbAL6rjHFOL1YUSOt6wh1pK/tDwTYsNUw6cif2mCdnkp5kCAADmfORzBtoK/YzOqkjlgID5iy5AzgBycQgCBBumLuQCzWTEdcQERQRJjtkXiZJRfuBhJllGsmcJ1WOSZqLtCdYHfigEiwRJHzF7cwcNI8xKnP0q4mGJBgzVfaNhTisziQxOeHkuIEsmTOFIdxTWRGSek4cpjVFZt4OR1VOqFCObpU7OZIJjigy+ZLEBKvKNQGWI/2TE8iJ1JDU0NkZOUcxiKhezswzrueHgmkHOS9nlawf7cJHCGVFIp/IVzXxLGtJETlOUfcMKUBZKnszk34qVOQJgczVstixVmYwaTFjrZqSfHbktAV00jkriGwHmY7KJbJc5pGpIhAeneGRDElpKSFrANM1c1hGDHzQOxUHXCjAQUYZSZsNmQI2E2xSSuRIkTnlTZDTbZVl5qbqXG/5woDqtmBkUi/KImgkRaZGkY/LtMjnQ6GMwpTo5OSOqUyj7KNR0cLmEjtFq8gxgkSkiywyJ59ccwTRyKks19KcJKYMXO0UXW5kYhW5r+ALkCVjBNVm7ChyQgI5+ZgYkXx0LgtRlQ3SaMMIB7itp2Nz7pBTh5MrNO2EiUrFAE1Id4QY/KAQL7n30pbdGqJIGLzy2Ux0Z+zt0K+IANciztC0oa9iDZegEto+HSEAPRN6MWPQbLAvYoPHzgBy0cVBjmBuYtOA/QoMFNaDrB5Cck+BbgN+RwtnoFjMjGGHhOZoijtHXxrGCppKmU8HaVhteSS0jjVWGy9yG+lUZRn4eAvlp30FXtoCJyDSoaTia0iCb7RDqxnYpYAgluJgJForEwE7mO5zv6qUw2d2v55IWfZjFCzY/VFVHMy2j+ZYNoDsHbPBMN4EGGdzj8kW2ZoqZwXYHYC59ARf5y6HjRW7afSqdIBQDsvQ6BjFl1gLfYkuFWQFhzQnPSBGOBtQIAuHm5zISQcONcJDHcdGzaCv1sw0MirYLGANnKG8cnLq+HAavlfsSD3uBI4UoGvoJpxleUBu8IAQ3FL53LQGR+0qh3TtHVOWpW8qEWiU9op9G2kD3dD8i0wKUAZclnmFoEPBRLANi6Coc/jumEYIoOBGwMaYhNKeSThDwRuBYhlgEbMeJoFVjpcP7gB0hJ5RxCsFIEX373hvICsAuHRQ36k698sZXgIABtWKci1DmtWD9xWqq1lygIfAHSTfZYiDMU7KAE/DcFUQIFNYpk6mE+DHGADAMAeXE7DYmhzzhFHkREKmQwovI1om6LPTvzNOoINzmWSanmLuidZW9EsUVNnxGMOsobkN1aQGMA53K3T4wLaAm+BKigaddGEDrPRdgOOdr3Fhq2OscQHExTG6Lga4nD8u1Ka2+IKbI9ZAB+ccrnNehyhD7eoUkq2Twb0TiyOkAroYk7Yt7o7eNTb4GsKi6iGphwWd9antNPihB4craR2dTLio+mSb6HAwLqO4q1qDR3X0lBk8VAleYS0usdEpvAo1/OvwprGu9cE2OpiQfISSMrQexnvtGx9DcBHSO2xrnKtxleUTGALVbRt8SFHpBu9gex+aGlYAhhCEbesIXSLuzBHnQQPppfV1Y/jcwxxogGuypTY4wXbeUi8NhUerQ23bGBtY4rzCRRxBDN1obh99E1Nd4wqO/xykdNoDwZQCQDWVjQmJBqtx90Tc8HDThjDWXNoANmeSA6BwWt36BSBIwcNJTevqtnYN7ubGG84ErI7ONCFAJ2AY4ClH/2IE4Gk58MWcwLXa1bjbB2zqaCiOBMc8UbJ4UuOVS4TOdxEKJ5WGpnckjY0aQqBuNAZugEIO4IbQuDaaBEJF0ANmglE1iQDrsCvgYxjwyNjGRaYinGBlbYmAtyFile+awBGDrUNDD3B77SGP/gHs2i1xMjxOQsIwwGKarnESINWhjbp1Q805hzUtIjSAeyHYFAE5/KGTV0hJcIIKXVC2AZ/hX/DB1I1HlQrRAbLBg8SA0YWosM92uk46wThTmwEZw5AriBGf6gYmBBFCG2ILK1ABbe1TL+lywIe34HvbC/jbY14CRIxMCBygE0HtKAAsUGyoHByY6Cfb4HOEQqnWCZYgSMBpWKwCJjoScapts1Cc2gCLHizxLiU4pbbIDR6LO6sd2WfpQIAFVesaqTvS/R5U2drq+lu6xe6+3dz0m6npwqrdWHSLVd8Pw+5lGrvl7rGtMXFK/bjRLxaLcblaLrea5SIt2tU4LIZhGMd2Y6jHcWWX7Wp3P+wZMahqN5b9ot8YF32z3vXr2Loa+r5fDGPqEk5Ybi3HZd2MTb9adOO4sXt9gBrL5TDu3lq2WN2O3dbQj0NXj4utMHRjHPu221otxsVm3FiN+D02i7Q5rpbDAkL2DOurz643q9D0eD7imPVYY3DWdIshJogeVy0PGvC9bfrNza5dpK3NRYtHGK0tu7hab9oUF9B66OPY9Yu2G5q2XR+WY8L2Nm2sD824SiuY1bftuOiarabvcPwY+zHVqcfTbhgWMcFB4zKuN5vLvq8BRAO1274D4fqhW09hgcVpWDVAJLZdDzv6rrNQFRloaPuhuSX1yBndCmM9RFvbpW4BaiUHm5t+2TSNb4bUNG1MfZMQ4cjCLQ7our4buj4hvgY3Nh0SYIJ2HQKnTwhHHIgUkdKiBq0RKgtk3CHVQ0KwghptcshNTQ2r1mMc2rphAvNggGsbrIpxEfo6di1CD5EBFiLT4rfX8HWjMXaMfd0ztzWDGW0kT1uHXIGs7mKLMzGOhBVMdN6izBgIaBo3GBDStSNUaCLyNLJ1H0Ni8rEq+AbnNaiIKA2BqRaiAmqOM3VQgRUKiQ2KROdaJOjGRqY/hDuGmy0+OsV6gnxsEUYOKbVGckfSQF5APsEvh+0a2Qf5BEnMcrKJ0snGzrK9Q7iiXKnIgEcnhPV43yCFerYpGtUU3W89da2eA0snEdaWI9XAbhrV27PfQaWvEaN4ati3om1w6CA82mZ0FBZhrFnjtUks6ijxls0lWla0cRigYm4qgKKy6NYcx5eYq7K3guZT14C2id0BW3m0NmieHY9nc4lOBPlNojmHaoaDT/QgAtNTYKy8iT0KSEI2gKkxAHgkKWZU9BeodUgTA4uvDYsWKRXlPyXXEl5UXWRV5CXU8x5JCnUx9glpKjjdeE6Yo+ktqI0kD56iRKMV8JrpjpyFGzpEgvZ11yBZ+jpJ2yO74gx8BlfrHmzAIqQrsLB2rLst8kE0rgf4yHNtYveAqTdeoKqNUIX13jaqqTdCHfEVRRy5Lg2WY/G6DS1yZehBe/Y4CI+xhuwG+riE7sTUfdM2UaX1rmnZEMEOPEhuQOVF2lo2yO9IKR0SOKocaxOOiR1MTW2Nksta4AfPiTyEoShZ1K2Ejs/YWoC+ToMCuT4rvqK785wcHgukAFtNOIk3A/hbATlMtElD9OkFKIOWUfGmZHZaWYuOXpMquH2xrUf76XhVcewcwYA8fWY/yJad8xzNPpG3JJFvT9MYNa8gyzgO50Tc5nkm2ktOtHmHwaVSc6SBOMBODOoZIejKORwveAr0zezSeY6sOXzhCJttN09hj54nO7yn5mn9NMRTHKQ4TkiKPIKc1OV93OTxPW6V+Id3bF55Zy442OFt3XC8ozm5qXgzVhzV8LLNiykHTEUezubRVr7gTfMhzsk48eLtd2cUkWci1TQanqaDGM7lkSt1LaZZ5HSN5h16LvKEtci39jy0LPKMkRtnmLJNE7ciD+7nHMqJHaF5Pb/uqvLYLg8Sxa7qqmpN3FB9ovp/MteZiA=="
}
[info] CPU 2703.2% | Mem 49MiB

[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": 1000000, "timeout_ms": 2000, "deadline_ms": 0, "deadline_abort": false, "record_timeouts": true },
  "duration_s": 20.003,
  "requests": 19958016,
  "bytes": 2933828352,
  "achieved_rate": 997737.39,
  "target_rate": 1000000,
  "target_rate_end": 1000000,
  "rate_ratio": 0.9977,
  "bytes_per_sec": 146667396.87,
  "error_rate": 0.000000,
  "max_schedule_lag_us": 52743,
  "latency_us": {
    "min": 24, "mean": 97.6, "stdev": 441.5, "max": 53791,
    "p50": 82, "p75": 99, "p90": 122, "p99": 180, "p99_9": 954, "p99_99": 22680
  },
  "status_codes": { "1xx": 0, "2xx": 19958016, "3xx": 0, "4xx": 0, "5xx": 0 },
  "errors": { "connect": 0, "read": 0, "write": 0, "timeout": 0, "deadline": 0, "non_2xx_3xx": 0 },
  "latency_histogram": "HISTFAAAD8x4nEWYb4wfx1nHd2fn5sbj8WSy2fx8uRwXx/nTtHETm6KAUEgARVWFokogUSFeVKIqVVQkXkDEG940xjGu65Y0jq6Ra12NcSJjVcEqxlyskAZTLDcNlmWZYsJxaoKbBmOM5VrBNSbl+3n2UB3lbm935vn/fJ8/c9t239I0tz/ajP+61d+t/bH7j5tHL48vHnT5gSdebHe6V92+7nNTx+K5cm39gY3PP3Tx44u/u7y7PfLN9rn32sUj7vzWbs/b3cnT/pV/njp1Lez8etz3v2t2/dvaa6fX3fjXm5b+4+aTTw8Lfzk5cmJm6/dnj16bO7Pnjm3funPXP9516a17Tv7wA2e//cFtL95/7Aebjn/tgYsLD576/ObXfrB5x94ty3+95fTylpXlLScPbLlwefO1pza/t/jgmy89cP7lDx94edMbi/cvPfuhoxfuO/WdD1z9q3uvfPmeU+/ftfX8xgvfvvMbL2248YU7zi7OX/jx3LFrt+//0eyZH9126T9nlm+sX9qx/ujuybN7bl1+edj/zVuW3ur3betX/uzmnf9S3/vvm949eNMbV8qBL5crf7/uuafXrZzOe/8oP/OdtYvPrD3y3bTzq+nEf625cXTNie1rFt+OrxyM2/5nevns9KW/mH7+T6bPfS9sfS0c3hvOPB1Wvj915O+mlv586rmdU5cu+wPn/Ouv+auH/PXd/vmn/PF/7w5+tzt1vLt+pFt4oTu0qzvyvlu54va/5a6dcVf/1l056k684Ba/5q7udkufd2/eaC/+sD1+oV35XrvwT+2Of2ifOdm+9DftlSPt0a+3l15ot/9pu/8r7dXd7Te+2L6/o734VHvsD8/8wZXfv/I7rz5x6Lf3/NahT577jc/9+oVfXXh86+MrH3v3sUO/dODRPb/w4s/v/dmLP7P0kXc2n//w9ftXPnj+vgv3br/74l0Ld5248+L8wh2X5w7PvXH72dveve3S+ufWb7916daDwxv91ZuP96fq9Xq9HKqvl5V1X1q3a9231r6+9rW1l9PZdD6dWrN1zfE1z8T9cW98dXrX9OHpq+HG1PGwL7wztTx1yX9p6oS/5F/x5/1Wv80v+JPdK93r3bPd6e5wd6Bb6C647d07iri33UH3oltwW92iu9rucDvd5XalXW7fbN9tz7XvtUvtmfZYe7A93L7aHm2f3NPua3e2W9sd7bZ2of3M7332009+6rOf+fQTn3jyk5/45Yc//tFP/eZDj/ziYx/7uV95/PFfe/ixTQ989KcfeeSxjQ9vunf+kfkNGzY8tGnDhg9NNs3n2flNw+yGu2fum5/ZuKkfhvm+bMh1Lvd9Gjb2s3Wmj3WY3D3b5z7VWmpfaz8/zJUUYir9fM0lDZO5Uodaciw5pBz7kmqfYj8pIeaahiHrno851VRSCbXvQ8k1ZJ9LjDX2Ncegzzlkl0IpUX/G6lOKQ9Dx4GpKOQTvS2yS9z7GFKOLepVj1PuYUolFJJKYpJBTDEnnSklNDI5XIblYg2gnF3wQdQntc5Zwehal4kVGRH2SRKIrqhJd95wPNWc9Q9LppNcPnZWokie4wLvosx6L2Oo/X12YSLDqnfcuOqdfcI2Bu430h0KUWPogUiE3vUwpsXRcZKLXwWi/Y4KC7BAavjcO+SOMXWycVOxE1jWyhUiF2OhHgJPI8FR5iYgyLaJGaHoREyWfZBZJx/mcdKLzvtF35x3k4TaaJJv9vPh5dOVD5CMnxZWXenCygXO8FnUXUEbkjVAsdgpWYpEaCeZkKR1Lxgt2oiHjQr9xYpRdw+sIRbENCBY6hwReTvR2y8lwYiTuvhFxcWukUMctXQnmHd/wS4YybRzm4B/WSoE7+mxCyrSKPBhwUn8iUsPBbBriBNckZC38IavIDehsZ4NrcJjEUAj5UEar4O+AFJ2oJlyuT7hBIWJ+QW2PaRtv3Ii70Vi+wSjOtIOC52BDrMEQtkhrHGQE0W7MZWLu0k9uBXFueOROMH9hZiiJPsEzRihfjEKD4EFxhSoKrEw4WEy5VXHGoG9Q2VzpfZccYerMTOiVLAT0VSpBVczg2piLTF5+mteJCknQRURCl0gC8RVumZfejbKbZHrbQASR9BQ558coMbd5kkY/jUM0MojVWNLyPo4+5tVoUeI4RvSOMOjcaAO8EGCNlsgsCc3b3jLDEVdjdCtYOzk9NmS6s5cWL6SwkZeOyVKEH0SCRy5+OUs4IRr2EtnUyV+ZPEeZOBq8kXWcMTNdxwc06rwlmLlWzHXIWeK70VXjBYJkdJPJh9VhnLCg5S4yjHEwpktAM9LNcjjY2Sk0seQVsyRxgknnfxKijXHMxFnsyFxTDo9Ey6oG+IOBQRBgBkWIgiwYQUEncBP+u5TBd7MgLkkVEQADQFeIHAUooQL2SFl1y5fGcqsWsecqoaaDmZIijo0SEtcncJo0FZtsuArCC6iyCggYJ9q62EQQVfx6nytFokZfxNvyIFFnAEQhSDTlsV7JDaiuW6Kp+sNnVbuYGgFjanoHbYygEhPBN6Wvz0gH3Cj+EA5gi2Z0vnoKjo7ocJQNJHp0GSjVg7cCxXMk4rPrJbaKW84GmyVWISwmlFFVbhpk5TC5JTeWUVWCyFsiqJYlq6cOe0jRBE4iT5NJZVEsZO8gaRPMIzVDbnFmTcWspEiGZvJZL07J9/JopEjyyQqmJKjRHOMJ+YRBxFsUVEET/jCXCltDLJZDBfWioaJOS4SGIAuVuozM5vxIZKlsQymRmLqQJSIqWPXP4mbdA1qpZVGMqadoUk5ZLqJDMOmC1UcP0KsfGGt0tFgnPPSUrKkIhgwUlWB8vaslkeCyLfJR6SKNhIxjHZJKqBUFCVUI6LFGZPO2NAdfzAYyRZG4CeB01lEkwNSZozGaUi6Zx+II6YA5gSNPUQCJiDTCnLooLGnyQ0ERkFSAiDldGMuF8wVUzagvc2VaC0ckZEsVRzNGt6F+JhCw8ok+YX+CiA+yBtQT+GG52SAE1qO3oN5lPxZqJYciny7BJzpCHUKqUJ1oq51Ua9YPszMpTbLslRXGVa53vYyhHrSmSqqEuZCHOCgZ89Ar1PsSJxOd1Ue1Xsp+hYVsOKReraha0tiISFRSJDWUSq6hF/0ZBULp5TU1pwUP9ICEPg9pZki0hANO69Gu1mohMuQyKCLUD9eZgeTPVR0xfrUcVv/bV32vYRIRazbXStzXqJZX0RbCRAIlaJVeJi29xwJVfxBWBd7ojCyxFMwnQZFZnIq8lOpEwTepua+DhQx0sLD0kLJ9lBV0svqaMJPiOw4ys+/7MuljGdS/BoRFnRgneo7YRGwyxU4W92rIe+5LSyBKH2bG9NItYIw+W2qp9XdKYYaAmaIeX0KGNGgiKNYDzwjrU8RZcmmRjaUGV+lu1b9Pevr/OOv7SV8G4byMOKFPluyDtz5bjAU4MhyjgSSRBHoU4MtuFRUELTUB6670TtNFT8RKpvEs4wJYJd8VQAy/J1xHYFi2858irBRAuh9kP89sIf8UPapM5F61Rf2AToucAqTK1ipNcpqvOWhwiQMU+DOQIZGun4AVzWSa6q2iUhkpSakaskOixigVSmhktkTfiTSG34we0YoecYxb5FZZUUUrWYRIFEUkqAvQqoO0rp75JQJJmcRm6jJ4DJid+lYcbLmldOTJBiMVtQAWGmzYrGKGlfaYNtPu4ziZUgkCtKamMtDBMltpkTi6o2xGOUE45Ymell95bA0KqNdgGBTDFqSKoixRvCNIguTWfFrJVGANZRKGaPlhITiRrRURg2j5qtSdKP+KjNxPmCAVTKUMyps5Gb4fgiUE8g5lmCgmeFPkBoVBTXPCggkOFrp4gzf5tkxinhl0hgKDbHHMQfBa06Qiu078IM4lwK+q0TAzg3S8wGR4OgpVNHxW6qKkYrBk5BVmyY5FYV3RtJCsVHcu9D0DpiyhEVmwoOKtI5NEYRfzWoRACroMrhsw91QlEilThSPzs7Ir8Qp5KbpCxVyVbBEKhfQTolJGGsJEfwEc8mLEhhGXyAm0OgGgztatAPagFIFE7RHoEZHkG/FDWEnyGbFhbAfhiqUTEUGg6BxUmVEzhb/PQybYrBbTu+qU661MgZ169MS5qlsVu4FEANx6lgfg0GAmJhsqbKiQ0rfSUFhSR0AJcxNeAjtA1ZDVhr+82jvQflixhYBCV9YZEJ5Oq5C/wYBWTLBctKAWF9opEIVehF7TDJRpBiV8QWOqKccZb8FsWmLGQhvVYpR22LWxXMOWpgF7CNVsXS+28AC2vFc1MTuiouS3vO/Br2xqwon5wONvT08asS9jpP5UYZdxM0MVy5VsIy55SD+kxscjo2Ud1RkN2a4YivOanrDpaXB5ZpALtoxItn+wIbwhfOVB6JG4EZimLV2dEhCPRjrbsmF1+glMuo6VisPsYCUNNMHALUcke9u4UJ16arLWQAWQVzUFk+UPAbziVZQSKyi9LFKR3AXSo0H6kGe0Zkq2NrLAEqCr3sqdCiBDXb0SiqjLKLCqaVZ29VSInticlInuerJVJVaVewIHkiUD6YSAKizLJFw0kPkBkNYqLFrnSZhTqAcMIvn0lu5AkgjtDXVVpSQ2rpEXpahiQde0SBgMPCROBetTr2SjB+5tvzWOQwlv99GKaKDHUAc3GeQstYqkskABxxDasGoy1Y+6Qi/kB/mg9tg7rx6hvFaGrmBbGme9X2ODZEN7x1ho26NmdWRggiOibdIjKNy48Ik26NqoqoaVgVbPtMHB9kdMMI2RC/bOoieEjplx3Bs143AajCCGpPumO6ZD9bZCYpZEHLp4mzCb1aG7MzZMmCYHM5EbO2Jnkd8wUY9DtUQbZ26b6juWHjZ6M5KyQIENEz8TdLRVTWPcEW7KrW4IeO1XV1SeoxbhzTgyW1bY6muc0kcNnaZm2+p4e0HzHs1mtgFJq8O17WQ0ydtcQLM8pQ0Bx2w2ZjAOZk01JLbqWJ3K6fv9uDUYdyUo6Wx90qENGx7bAK5ubcbBiKk72sbLhnP9s5WaKDfjNK5Uz6OLnM33XBoXbDYbBdtGmFIOv2tfoX1JtLu2EjSX2CIiGG8LMZs0tdjwOh1DxxuCynpKT02TtwicMaBsp8FjpdtJhBELqmALL/wklzmaQ6CEKMYwcYQcWyUV65GANVs4dmwairU63sZJYXFkL6VZDWEDW8hx86pXyZaAtiHqmHttTcHNYMMyRreRB4uNC9lmdGKQ25SZtjtqzOLR4k50LKiJ9zhuriw9OnNLQ8PmxrWWLWvGnY0OdaOT/n9BJd6RqLfljem76tnVxBDpNSLSGXOON0YSSabcuOpzU96kDdPjyrJxU/YjEPDOTZsKmKRTDDoTUCckwVo9T7l1+tmNtxp3ix6n3Vr991P6/1b9vM3d7m5297j/A0G0EoU="
}
[info] CPU 2735.3% | Mem 50MiB

[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": 1000000, "timeout_ms": 2000, "deadline_ms": 0, "deadline_abort": false, "record_timeouts": true },
  "duration_s": 20.004,
  "requests": 19958364,
  "bytes": 2933879508,
  "achieved_rate": 997735.80,
  "target_rate": 1000000,
  "target_rate_end": 1000000,
  "rate_ratio": 0.9977,
  "bytes_per_sec": 146667163.03,
  "error_rate": 0.000000,
  "max_schedule_lag_us": 62570,
  "latency_us": {
    "min": 25, "mean": 104.5, "stdev": 578.8, "max": 63615,
    "p50": 81, "p75": 98, "p90": 120, "p99": 178, "p99_9": 7030, "p99_99": 26984
  },
  "status_codes": { "1xx": 0, "2xx": 19958364, "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 2755.4% | Mem 53MiB
[info] run 2 wins on score

=== Best: 997737 req/s (CPU: 2735.3%, Mem: 50MiB) ===
[info] exact CPU: 495.77 core-seconds | 24.841 us/req
=== Fixed-rate: cpu/req 24.84us | p99 180.0us | p99.9 954.0us | rate_ratio 0.9977 ===
[info] saved results/latency-1m/1024/hical.json
httparena-bench-hical
httparena-bench-hical

==============================================
=== hical / latency-10k / 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": 10000, "timeout_ms": 2000, "deadline_ms": 0, "deadline_abort": false, "record_timeouts": true },
  "duration_s": 20.002,
  "requests": 199640,
  "bytes": 29347080,
  "achieved_rate": 9980.90,
  "target_rate": 10000,
  "target_rate_end": 10000,
  "rate_ratio": 0.9981,
  "bytes_per_sec": 1467191.63,
  "error_rate": 0.000000,
  "max_schedule_lag_us": 0,
  "latency_us": {
    "min": 33, "mean": 84.0, "stdev": 608.8, "max": 38847,
    "p50": 61, "p75": 84, "p90": 92, "p99": 106, "p99_9": 402, "p99_99": 28408
  },
  "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": "HISTFAAAAjF4nC1RPWhTYRT97nk/eTH/xpjmt4RWg1St2BpBhxoKVaG2g4M4OIiDLVViddDBoWCoIjVUIrgolOjQQSSUorE6iLSpQ6ngYP2FoouT1CAi4t95LwZyv3PP+e79zr0vWSyHlUJFNX/a/1OcpHxZ9aw1ibwOU1ntuVMX5+W9NFA1lr31VC0/O3TjzJWh8eHP519ektpVmblQGf1VmD/7qvDgeGPgSc9srtj9fOez7Y3Ny5lqvL5xLlpsWYqttXzfUF8/HZz03/Pe900G69Ev7cV90/1/Doz11fOVPTM7Stmp9Nv4RHI1dSv9OtGIjIUmPKvWD3NOH9eXtG/4iRqmcBclfJSnUpWSDPT35bZ255LJdDwYt7yW1zT9lt80oQOmqUx9nSLUAANKVyQV7Ajdgs3BjQwp+Bh8vLYFEUSJ9yNF1YMwAswTRLw3SMoWV3S8E3wVDOO2gTeCRcEHwXXBLixouCY4gpuCT8KWx3AYe9l2GzWFk7gj+C3oRRvOYQQH8QJw4aGOReA0HgErghBfc9PLCRaMMHOjLLTFAdjJRdSKTYjhrxCESCnsZuqm06ztM8LCPH0eQhceC/uESEUwSgu2+QIZDwZ10gmWKcZWDutxcIioi6fGf5a8fQZYHOa7PkfPNHfVYS/S5bhy2YzheCbstBcMFrEmRoGKzbupexwp6kRn27rGBxK86+JA/CwBDmPobVgQLsdwlE57kb1cje1Bw1Fn9g4WuNjC4Jz/AE7fc84="
}
[info] CPU 31.1% | Mem 49MiB

[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": 10000, "timeout_ms": 2000, "deadline_ms": 0, "deadline_abort": false, "record_timeouts": true },
  "duration_s": 20.002,
  "requests": 199680,
  "bytes": 29352960,
  "achieved_rate": 9982.91,
  "target_rate": 10000,
  "target_rate_end": 10000,
  "rate_ratio": 0.9983,
  "bytes_per_sec": 1467487.98,
  "error_rate": 0.000000,
  "max_schedule_lag_us": 0,
  "latency_us": {
    "min": 33, "mean": 71.2, "stdev": 300.9, "max": 31791,
    "p50": 59, "p75": 70, "p90": 90, "p99": 114, "p99_9": 177, "p99_99": 16440
  },
  "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": "HISTFAAAAil4nC1QPWhTYRR997zvxcQkfW2TmFibaiwlCdFIcDBYtYZipc1UHDoo1kERlAoOtYMKWmJaqxYkCRQNtjgEFfEnhEzBQfG/RBEHhyISF3EQ6WaH6nmp7w3fPee795xzv85MzqNpmNDWPv3/KU2Qm9L6fq8RKdjgTQ6dK8or+SSrqBtV16XAu/jikems1K/I17P5sekLtZxMzku1IHMZKZ9vTFTOPDmaHV4aWEjlU0v7K8mVxK/I9JZs4KO35FvxFb2N1nJLxrW8/rl91v7Nvupa9sxufRD7Gf0cX9j2JVwP1rwlM9v6o63imfGV21dbqq6S4409a79uu6UW9Tm9hrv6krpnTKo7KMqMFCUvp/YN7E7Gh44dz0iNf0OeIa8/wkPZsyES6erq6FQdAWVvb+VCSikoDTxtmg3QoENTusuhYCg/YJAh5QR6WPmIDaSwAxsBE2mss3g/r6OE46oPIdYeHEA/+U24iPvC6TTCyAnnHdiFUTwFPghOoyA4gXF8F7wEXgj+CK4JhungRC8eC6YEMQzCr8I4xH6rthxuAn+F2lE6aExjoo3JNM454GbXQSRwVRDEdsKdzNiLy8IeN7qpbFo+Y9hMGCIYYeic5dpDYHKkHyepY1obWnt3EziZf5ACJHQGjpEKcvyGKIyw3ktvP89Rbp5mEjZanik2h5qXHsqFGa+Z4q3gtTC7h9KH8V6aoQyVoOC89Vim9S5u/rfBbQsG/gGL43xs"
}
[info] CPU 27.7% | Mem 52MiB

[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": 10000, "timeout_ms": 2000, "deadline_ms": 0, "deadline_abort": false, "record_timeouts": true },
  "duration_s": 20.005,
  "requests": 199626,
  "bytes": 29345022,
  "achieved_rate": 9979.03,
  "target_rate": 10000,
  "target_rate_end": 10000,
  "rate_ratio": 0.9979,
  "bytes_per_sec": 1466917.94,
  "error_rate": 0.000000,
  "max_schedule_lag_us": 0,
  "latency_us": {
    "min": 35, "mean": 79.4, "stdev": 545.3, "max": 40991,
    "p50": 60, "p75": 78, "p90": 91, "p99": 106, "p99_9": 676, "p99_99": 32584
  },
  "status_codes": { "1xx": 0, "2xx": 199626, "3xx": 0, "4xx": 0, "5xx": 0 },
  "errors": { "connect": 0, "read": 0, "write": 0, "timeout": 0, "deadline": 0, "non_2xx_3xx": 0 },
  "latency_histogram": "HISTFAAAAk14nC1QTUwTYRDd7+23bbfb0pQVSqkEsJYqjSJBQrWCoVp/ogfxJyjamxVjL/ZgCBebiCLGkDSBFFMSD0jiT1S0FxtijAdiOBDjwRgPBOvFg3Lw0JMH4tvCzn47OzNv3rxvtt+dMhUFJWXzUbe8qAZT95XDfzcTCdkS77v2WpREWbzEqizo8/XfIuND/7K/s2/SazfmRlcmRSUv8g/Ep0zxen7419W1ZHngy9HPveXo1547Xeu7xndMByoN075K3Udz0Tvhfe/ZcK0bZeODnnN9r10KFg4uxgvxXF8uury/El4JPKov+uZ9S/5C46pvwyzULDtf2J9pE9qczKl5tYISHiOHorh988rF8yfOHtrX3r5zb1vDsdNDZ6JtjTXO2m0tToe0OZx8pVSkAiiQ0uWEw2aTsAM6AFUa8FoVaEzRGUxpDPp5WmFCujEodaj8VdnhR9jqC8KNpwIBmoYYJgWdgj3s7mD5OMH96CaqGyGM4gBOYYSIk6zE4GEcww9wbgSzAmmMCVzAc8F+HfcEZoEZQYowp/0UeKviHZCipXGL/D1YUDEDa2gXsmQZwSvgEpJ4YskgWQrD2I0j8KEZddSUQBPVKdTTyZjMEVymjCbyq+hFkHfUWVS2zAu/9Fg78RDthrUNC2bQW5JMa1dU0cFNqVWZKmcleNMAqxHOOIcB9gYJM/FQVCeZhNurZAwD1U0xNnlS1tbtnNRKETpZDOr2UrlKn8SYRIapDEsBqlYwiD+CQTMJrRsZJA0RqXGrIX47ye8hn6eq9T80IHes"
}
[info] CPU 29.9% | Mem 53MiB
[info] run 2 wins on score

=== Best: 9983 req/s (CPU: 27.7%, Mem: 52MiB) ===
[info] exact CPU: 5.80 core-seconds | 29.058 us/req
=== Fixed-rate: cpu/req 29.06us | p99 114.0us | p99.9 177.0us | rate_ratio 0.9983 ===
[info] saved results/latency-10k/1024/hical.json
httparena-bench-hical
httparena-bench-hical
[info] skip: hical does not subscribe to async
[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/hical.json - 10 new, 10 total
[updated] /home/diogo/actions-runner/_work/HttpArena/HttpArena/site/data/current.json
[info] done
[info] restoring loopback MTU to 65536

@MDA2AV
MDA2AV merged commit 64647a5 into MDA2AV:main Sep 3, 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.

3 participants