# Decision Runtime cold start, 2026-09-28 (runtime source after the lazy-import fix)

Environment: Apple M5 Max (6 performance + 12 efficiency cores), 48 GB RAM, macOS 26.6.2,
Python 3.11.4, pydantic 2.13.5, fastapi 0.123.0, uvicorn 0.40.0.
Runtime: built from source on 2026-09-28, after the fix that stops importing the GPU solver's
libraries at import time. `helixor_runtime.__version__` still reads 0.2.1; no release has been cut.
Load averages (1, 5, 15 min) 3.25, 4.19, 5.91 at the start of the runs.
Only cold start was re-measured. The other results for this date are in results-2026-09-28.md.

## bench_cold_call.py (5 fresh processes)
import 107.0-108.6 ms; construct 0.38-0.42 ms; first evaluate 91.0-104.0 us; second evaluate 44.7-53.3 us.

| Run | import ms | construct ms | first evaluate us | second evaluate us | process wall s |
|---|---|---|---|---|---|
| 1 | 107.82 | 0.38 | 91.0 | 53.3 | 0.15 |
| 2 | 107.03 | 0.40 | 98.5 | 44.7 | 0.15 |
| 3 | 107.48 | 0.42 | 104.0 | 47.8 | 0.15 |
| 4 | 108.63 | 0.40 | 103.4 | 48.4 | 0.15 |
| 5 | 108.11 | 0.42 | 101.7 | 50.4 | 0.15 |

Process wall time is `/usr/bin/time -p` for the whole script; an empty interpreter
(`python -c pass`) took 0.01 s on the same machine.

After `import helixor_runtime`, neither `torch` nor `numpy` is in `sys.modules`.

## python -X importtime -c "import helixor_runtime" (cumulative, one run)
| Module | cumulative ms |
|---|---|
| helixor_runtime | 110.2 |
| the engine modules and their dependencies | 99.0 |
| of which the rule-extraction module and its dependencies | 62.5 |
| of which the validation library (pydantic) | 15.8 |
| generated SDK models | 4.3 |

Notes:
- Import fell from 864-985 ms (results-2026-09-28.md, runtime 0.2.1) to 107-109 ms.
- The cold-start target of under 100 ms is NOT met: import alone is about 108 ms, and a fresh
  process that imports, constructs and evaluates once takes about 0.15 s of wall time.
