frameworks/kemal: add benchmark implementation - #1174
Conversation
|
/benchmark --save |
|
👋 Benchmark request received. A collaborator will review and approve the run. |
Benchmark ResultsFramework: No results captured Full log |
|
/benchmark --save |
|
👋 Benchmark request received. A collaborator will review and approve the run. |
|
|
|
/benchmark --save |
|
👋 Benchmark request received. A collaborator will review and approve the run. |
Benchmark ResultsFramework: No results captured Full log |
|
The failed run is the build on the benchmark host, not the entry logic: shards install crashes the crystal compiler with "Unhandled exception: Arithmetic overflow (OverflowError)". The same build passes the validate runner, which has 4 CPUs, and the benchmark host reports 128 available CPUs, exactly one past what an Int8 holds, so a cpu count kept in a too-small integer somewhere in the toolchain is the suspect. A workaround worth trying in the Dockerfile is bounding the affinity of the two build steps, taskset -c 0-63 for both shards install and crystal build. If the built server reads the cpu count at runtime the same way, it may need the same cap when it starts. |
Adds Kemal, and with it Crystal, which is not on the board at all.
Six profiles: baseline, pipelined, limited-conn, json, json-comp, upload.
Verified locally: docker build, then the six profiles replayed against this repo's own
data/dataset.json, byte identical to express and fastify for the same requests.Written with Claude Opus 5.