Reproducible by design

Benchmark methodology

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.

Shared raw service contract

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.

Wire bytes are observed.

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.

Fresh paired baseline

  1. Verify the source commit and clean tree.
  2. Create a new private temporary root and endpoint.
  3. Start a new standard-C oracle and worker with --expose-gc.
  4. Run warm-up, force three GCs outside timing, and confirm readiness.
  5. Measure one pass and retain the raw sample.
  6. Close naturally, verify cleanup, and prove immediate endpoint reuse.
  7. Repeat with a paired 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.

Canonical full configuration

FieldValue
PayloadDeterministic 64 bytes
Warm-up100,000 completed messages
Measured work1,000,000 completed messages per pass
SamplesSeven fresh samples per adapter and pass
OutliersNone deleted; every raw sample retained
Official oracleStandard C, source/binary hash and compiler flags recorded
Development oracleNode reflector, labelled non-C smoke and excluded from rankings

Paired exact-version transport contract

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.

TransportRecorded semantics
Native local IPCUnix domain socket on Linux/macOS; Windows named pipe on Windows; Node byte reflector.
TCPOrdered loopback stream using the recorded address family and framing; Node byte reflector.
TLSNode byte reflector over encryption-only loopback bulk transfer with rejectUnauthorized:false for both versions; no peer authentication; handshake excluded from timing.
UDP4 / UDP6Loopback 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.

Hybrid-oracle snapshots are noisy.

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.

Separate measurement passes

Speed

Boundary timing and CPU counters only. Reports milliseconds per million messages and the delta from the paired baseline.

Resources

Adds memory checkpoints, GC observation, and event-loop delay. It is never presented as an uninstrumented speed result.

Latency

Keeps one message in flight and retains distribution evidence including p50, p95, and p99.

Publication gates

EvidenceOfficial comparison?
Dirty or changed working treeNo; labelled development evidence.
Node reflector in the profile laneNo; compiler-free smoke only.
Complete paired exact-version hybrid-oracle matrixYes, 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 checkNo; nothing is hosted.
Incomplete required matrixNo; the hosted view remains Pending.
Clean standard-C baseline onlyInfrastructure evidence; no profile ranking.
Clean comparable profile adapters with matching semantics and package footprintEligible after schema, provenance, and review gates pass.
Assured mutual TLS compared with plaintextNo; Assured stays in its verified mutual-TLS lane.

Run it

Profile harness

npm run benchmark:quick
npm run benchmark:test

node benchmark/oracle/build.js
npm run benchmark:record
npm run benchmark:validate

The full profile recorder requires a clean commit, standard-C oracle, canonical configuration, and package footprint.

v12 / recorded-version transports

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:chart

Only a complete six-job artifact batch from the manual transport workflow can enter the append-only tracked results.