Speed
Boundary timing and CPU counters only. Reports milliseconds per million messages and the delta from the paired baseline.
Reproducible by design
A benchmark result is useful only when the compared systems start clean, perform the same work, account for the same bytes, and leave the machine equally clean. Profile and version-transport evidence use separate recorded contracts.
Compatible raw-client adapters connect to the same standard-C byte reflector source and protocol. “Shared” describes the test contract—not a reused process. Every sample starts a fresh oracle process, worker process, connection, endpoint, and private temporary directory.
Raw payload size cannot predict framed profile traffic. Each adapter reports actual sent, reflected, and received bytes; framed lanes also verify message sequence and payload content.
--expose-gc.node:net baseline in the same round; reverse adapter order on alternating rounds.A fresh process resets JavaScript heap state and removes leftover sockets or module state. It cannot reset host page cache, thermal state, firmware, or unrelated load, so official runs require an identified idle machine and keep machine provenance.
| Field | Value |
|---|---|
| Payload | Deterministic 64 bytes |
| Warm-up | 100,000 completed messages |
| Measured work | 1,000,000 completed messages per pass |
| Samples | Seven fresh samples per adapter and pass |
| Outliers | None deleted; every raw sample retained |
| Official oracle | Standard C, source/binary hash and compiler flags recorded |
| Development oracle | Node reflector, labelled non-C smoke and excluded from rankings |
The version comparison is a separate hybrid-oracle CI lane. Native local IPC, TCP, and TLS use the Node byte reflector; official UDP4 and UDP6 evidence uses the standard-C exact-count reflector. Within one host environment and transport, node-ipc 12.0.0 and the exact version named in the record use the same oracle implementation and alternate order across seven pairs. Each side receives the same deterministic 64-byte application payload, 64-message sequence probe, 100,000-message warm-up, and 1,000,000 completed-message measurement.
| Transport | Recorded semantics |
|---|---|
| Native local IPC | Unix domain socket on Linux/macOS; Windows named pipe on Windows; Node byte reflector. |
| TCP | Ordered loopback stream using the recorded address family and framing; Node byte reflector. |
| TLS | Node byte reflector over encryption-only loopback bulk transfer with rejectUnauthorized:false for both versions; no peer authentication; handshake excluded from timing. |
| UDP4 / UDP6 | Loopback datagrams retained as separate address-family lanes; standard-C exact-count reflector for official evidence. |
Every accepted sample proves exact application and 101-byte node-ipc frame counts at the reflector boundary, content and sequence, natural exits, closed sockets, endpoint removal, and no temporary leftovers. Standard-C evidence also records source and binary SHA-256, compiler and version, fixed flags, and platform/architecture target. TLS ciphertext bytes are not captured. A missing expected pair remains Pending; missing evidence is never converted into zero.
GitHub-hosted runners vary in hardware and load. These paired observations are useful for directional version comparisons inside one exact lane, but they are not hardware-normalized rankings, certifications, or a pass/fail regression threshold. No result is hosted until the complete matrix passes oracle provenance, exact-count, correctness, cleanup, schema, and manifest gates. Do not aggregate or rank across operating systems or transports.
Boundary timing and CPU counters only. Reports milliseconds per million messages and the delta from the paired baseline.
Adds memory checkpoints, GC observation, and event-loop delay. It is never presented as an uninstrumented speed result.
Keeps one message in flight and retains distribution evidence including p50, p95, and p99.
| Evidence | Official comparison? |
|---|---|
| Dirty or changed working tree | No; labelled development evidence. |
| Node reflector in the profile lane | No; compiler-free smoke only. |
| Complete paired exact-version hybrid-oracle matrix | Yes, as snapshot-noisy directional evidence only, after matching-pair oracle and C provenance gates pass; never a ranking or certification. |
| Failed count, frame-byte, content, timeout, saturation, cleanup, or oracle-provenance check | No; nothing is hosted. |
| Incomplete required matrix | No; the hosted view remains Pending. |
| Clean standard-C baseline only | Infrastructure evidence; no profile ranking. |
| Clean comparable profile adapters with matching semantics and package footprint | Eligible after schema, provenance, and review gates pass. |
| Assured mutual TLS compared with plaintext | No; Assured stays in its verified mutual-TLS lane. |
npm run benchmark:quick
npm run benchmark:test
node benchmark/oracle/build.js
npm run benchmark:record
npm run benchmark:validateThe full profile recorder requires a clean commit, standard-C oracle, canonical configuration, and package footprint.
npm run benchmark:transport:prepare -- <empty-v12-directory>
node benchmark/oracle/build.js
npm run benchmark:transport:c-oracle:test
npm run benchmark:transport -- --legacy-root=<empty-v12-directory>
gh run download <run-id> --dir <temporary-directory>
npm run benchmark:transport:merge -- <temporary-directory>
npm run benchmark:transport:validate
npm run benchmark:transport:chartOnly a complete six-job artifact batch from the manual transport workflow can enter the append-only tracked results.