lumbda/docs/benchmark-ack.dot
russell@unturf.com aff292ebc8 whitepaper: actually use diagrams — 5 PNGs embedded, .dot sources refreshed
Fox flagged that the "A diagram is worth 10,000 words" quote
appeared twice in the paper but nothing was actually illustrated.
Fixed by:

1. Refreshing every .dot source to match current reality:
   - docs/asm-architecture.dot: 22 KB (was "13 KB"), 14 syscalls
     (was 4), 91 builtins (was 34), djb2 hash (was "linear scan"),
     TCP stack + heap-snapshot + portal boxes added.
   - docs/benchmark-sumto.dot: sum-to(1M) i5-8350U numbers; C
     --fast 238 ms, asm 670 ms, Python --fast 5,136 ms. Was
     sum-to(50k) with stale numbers.
   - docs/benchmark-ack.dot: ackermann(3,8) i5-8350U numbers. Was
     ack(3,4) with stale numbers.
   - docs/benchmark-binary-size.dot: asm 22 KB, C 205 KB, busybox
     2.1 MB, python3 8.0 MB. Was comparing against different
     baselines.

2. Regenerated all PNGs via `make docs`.

3. Embedded in the paper at meaningful points:
   - §2 Architecture (Python): python-architecture.png
   - §6.4 Three-way bench: benchmark-sumto.png, benchmark-ack.png
   - §11 Three Implementations: c-architecture.png, asm-
     architecture.png
   - §11.3 HTTP + sockets: benchmark-binary-size.png

4. Removed the redundant quote from §12.3; the one in §11
   remains because §11 now follows it with two real diagrams.

Prerequisite fox noted: "make sure diagrams are up to date before
using them to code." Done — every embedded figure has the current
numbers/topology, not the old ones.
2026-04-17 19:09:16 -04:00

18 lines
780 B
Text

// ackermann(3, 8) = 2045 benchmark — three implementations on i5-8350U
// Measured via `make bench-3way` 2026-04-17.
// "A diagram is worth 10,000 words." — russell@unturf.com
digraph benchmark_ack {
rankdir=LR
node [shape=record, style=filled, fontname="Helvetica", fontsize=11]
edge [style=invis]
label="ackermann(3, 8) = 2045 — time in milliseconds (lower is better)\ni5-8350U, best of 2 runs"
labelloc=t
fontsize=14
fontname="Helvetica Bold"
c_fast [label="{C --fast|1,433 ms}" fillcolor="#00b894" fontcolor=white width=1.0]
asm [label="{Assembly|2,322 ms}" fillcolor="#6c5ce7" fontcolor=white width=1.7]
py_fast [label="{Python --fast|17,004 ms}" fillcolor="#e17055" fontcolor=white width=10.0]
c_fast -> asm -> py_fast
}