2026-10-12
Linux startup benchmarks: community snapshot from #1998
@CassieFox23 published How fast REA's server starts on Linux (discussion created 2026-10-12; last updated for 6.4.0 and main tip 13e03e943). This page paraphrases methodology and copies the published numbers — we do not invent benches. If you have not replayed locally, treat tables as community report, pending your reproduction.
Method (as stated by the author)
- Host: Linux; timings are seconds from process start.
- Warm-up run, then median of 5 timed runs; brackets show min–max where published.
- Started server as node + package script (not the npx launch path) so Node version is certain.
- No client config; no Ghidra/Hopper/IDA wired for the startup table.
- Not run: macOS/Windows, cold disk cache, other Node lines, npx path.
Tool-list table (copied from #1998)
| Target | Tools | Node | Tool list median (min–max) | Init median |
|---|---|---|---|---|
| 6.3.0 | 139 | 22 | 1.90 (1.88–1.91) | 1.68 |
| 6.3.0 | 139 | 24 | 1.59 (1.56–1.61) | 1.39 |
| 6.3.0 | 139 | 26 | 1.38 (1.37–1.42) | 1.21 |
| 6.4.0 | 170 | 22 | 2.16 (2.12–2.17) | 1.84 |
| 6.4.0 | 170 | 24 | 1.75 (1.72–1.80) | 1.48 |
| 6.4.0 | 170 | 26 | 1.55 (1.52–1.58) | 1.31 |
main 13e03e943 | 170 | 22 | 1.78 (1.76–1.80) | 1.47 |
main 13e03e943 | 170 | 24 | 1.47 (1.46–1.50) | 1.21 |
main 13e03e943 | 170 | 26 | 1.30 (1.28–1.33) | 1.06 |
main vs 6.4.0 on tool list (author’s derived columns)
| Node | 6.4.0 | main | Saved | Faster by |
|---|---|---|---|---|
| 22 | 2.16 s | 1.78 s | 0.38 s | 17.8% |
| 24 | 1.75 s | 1.47 s | 0.28 s | 16.0% |
| 26 | 1.55 s | 1.30 s | 0.26 s | 16.5% |
Interpretation from the discussion (paraphrase): 6.4.0 is slower than 6.3.0 on list by 0.17–0.26 s while listing 31 more tools (170 vs 139). Main tip is faster than 6.4.0 by 16–18% on list. Node 26 fastest / Node 22 slowest in every target. Reverse-order checks moved no tool-list median by more than 0.04 s.
First real job (Node 24 only) — copied
Seconds from process start to job reply; median of 5; job-alone in brackets (reply minus tool-list reply):
| Job | 6.3.0 | 6.4.0 | main 13e03e943 |
|---|---|---|---|
| Browser capture | 1.76 (0.49) | 1.89 (0.50) | 1.91 (0.71) |
| Script analysis | 3.35 (2.10) | 3.95 (2.51) | 3.63 (2.46) |
| Android app scan | failed | 2.03 (0.66) | 1.79 (0.64) |
| Ghidra overview | 7.49 (6.31) | 7.62 (6.30) | 7.45 (6.36) |
Author notes: Playwright load moved from startup to first capture on main (#1691 context); first capture can consume the list saving. 6.3.0 Android failure message cited: artifact path collision res/2f.xml vs res/2F.xml. 6.4.0/main succeed on the same Coffee app file.
OSS fixtures named in #1998
| Job | Fixture (as published) | Notes |
|---|---|---|
| Script analysis | Stretchly 1.22.1 app/main.js (BSD-2-Clause) | Whole app folder exceeded 10 MiB reply limit; one file + REA_MCP_MAX_RESPONSE_BYTES=268435456 |
| Android scan | Coffee 2.27 (coffee_47.apk, Apache-2.0) | SHA-256 published in discussion |
| Ghidra overview | Own 3-line C → ELF (t.c) | SHA-256 published in discussion |
How to rerun (appendix from discussion)
mkdir -p /tmp/rea-bench/6.4.0
npm install --no-save --prefix /tmp/rea-bench/6.4.0 [email protected]
# Author used a local mcp-time.mjs wrapper (1 warm-up + 5 timed runs).
# Prefer the scripts linked from discussion #1998 rather than inventing timers.
For main, author archived commit 13e03e943, npm ci && npm run build, then timed scripts/rea.mjs. Load gate example: start rows only if load average ≤ 2.0 (24-thread box mentioned).
Reading for operators
- More tools ≠ slower business jobs — Android scan gains in 6.4 even if list costs more.
- Prefer Node lines upstream supports (discussion used 22/24/26; README pulse cites 22.19+/24.11+/26+).
- Cross-link /docs/linux-fedora/#startup and /blog/rea-agents-6-4-0/.
- Do not paste commercial binaries into public benches.
Compliance
- Cite @CassieFox23; do not invent rows.
- OSS fixtures only in public write-ups.
- Authorized/own targets when you extend benches — /compliance/.
Sources
- Discussion #1998 (2026-10-12)
- 6.4.0 release
- #1691 startup note (as referenced by author)
Verification checklist before you cite these numbers
- Tool counts still 139 / 170 with a link to #1998?
- Warm-up + median of 5 stated (not a single magical run)?
- List latency separated from first-job latency?
- Fixtures limited to Stretchly / Coffee / own C as published?
- “Not run” caveats listed (macOS/Windows/cold cache/npx)?
- “Pending your reproduction” disclaimer present when unreproduced?
Treat this page as a citation layer: when sharing externally, keep the discussion URL and commit 13e03e943. If your replay differs, publish your logs and update via discussion/issue — do not silently rewrite someone else’s table.
What we refuse to invent
- Absolute rankings of macOS vs Linux (not in #1998 startup table).
- npx-path timings (author explicitly did not run them for the main table).
- Commercial APK benches.
- Per-commit micro-benchmarks beyond what #1998 attributes to #1691 qualitatively.
If a screenshot on social media shows different seconds, ask for Node version, commit/tag, warm cache vs cold, and load average — the discussion already shows the same box can print 1.75 s vs 1.38 s for 6.4.0 list depending on pass load.