Skip to content

I0910 — The release profile is chosen by measurement, not by folklore

Measure the size, startup, memory and latency consequences of the candidate release configurations and select the smallest one that does not regress runtime behaviour materially, recording the decision and the numbers.

BLOCKED wave 4 · p1 · implementation profile · parallel safe

Part of fly-deployment — A deployment is a projection of the repository model, and a reachable URL is its evidence.

Blocked. This issue cannot start until I0909 is done. The status is derived from that, not declared.

Objective

Measure the size, startup, memory and latency consequences of the candidate release configurations and select the smallest one that does not regress runtime behaviour materially, recording the decision and the numbers.

Why

Every list of Cargo size flags on the internet is asserted rather than measured, and several of them trade startup or throughput for megabytes. The repository already refuses claims without evidence.

Current state

The workspace has its existing release profile and no deployment-specific profile. No size or startup numbers exist for any configuration.

Desired state

A deployment profile exists if and only if it is justified by measurement, the existing release semantics are unchanged for everyone else, and the numbers behind the decision are recorded.

Scope

  • Cargo.toml
  • .ai/repo/benchmarks/rust

Out of scope

  • Profile-guided optimisation
  • Any target-cpu setting that assumes the build host's processor
  • Changing the existing release profile's semantics for local development

Dependencies

What waits on this

Acceptance criteria

  • Binary size, container size, startup to readiness, resident memory and endpoint latency are measured for the existing release profile and for each candidate configuration
  • The chosen configuration is the smallest that does not regress runtime behaviour materially, and the threshold for material is stated
  • The measurements are recorded as artifacts through the existing benchmark infrastructure rather than pasted into prose
  • The decision is captured where a reader can find the reasoning, and the existing release profile stays valid for local builds

Validation

  • cargo test --workspace --all-features
  • majordomus bench --check

Evidence required

  • profile_measured
  • profile_chosen

Evidence

None recorded. Every token above needs a command or an artifact behind it before this issue can be completed; narrative is refused.

Risk

panic=abort changes observable behaviour for a process that currently unwinds. If any test or capability depends on unwinding, the flag costs correctness rather than bytes.

Timeline

started
verified
completed

Those three fields, the evidence above and the state of the dependencies are all the status is made of. There is no status field to disagree with them.

Canonical record: .ai/repo/project/issues/I0910.yaml. Read it back with majordomus plan show I0910.