Parent: #250
Recommended tier: medium/local-agent
Can begin after: #251
Should inform: #262, #264, #265
Goal
Create a reproducible performance and latency baseline for the current Owen pipeline and the emerging Rust core before introducing LSP/incremental architecture or declaring a cutover performance win.
The primary IDE metric is edit-to-diagnostic latency, not a vague batch multiplier.
Workloads
Record representative workloads for:
- minimal
.own file;
- medium
.own module;
- corpus batch;
- single C# file through Roslyn extractor → OwnIR → core;
- representative
.csproj;
- representative multi-project
.sln;
- selected large real-world solution;
- five pinned OSS repositories where practical.
Pin source commits and exact commands.
Measurements
Measure separately where possible:
- process startup;
- frontend/Roslyn extraction;
- OwnIR serialization and parse;
- bridge/lowering;
- analysis;
- report/SARIF rendering;
- end-to-end wall time;
- peak RSS;
- allocation/heap profile for selected workloads;
- repeated warm run;
- no-op recheck;
- single-file edit recheck;
- diagnostic publication latency proxy.
For the Rust path, do not benchmark incomplete placeholders as if they represent the final production route. Clearly mark unavailable stages.
Method discipline
- Use pinned hardware/runtime/toolchain metadata.
- Record warm-up policy.
- Separate cold and warm runs.
- Report distributions or repeated-run statistics, not one flattering number.
- Keep batch and IDE-oriented measurements distinct.
- Include raw machine-readable results.
- Profile before recommending optimizations.
Outputs
Add:
- a methodology note;
- machine-readable baseline data;
- scripts/commands that reproduce measurements;
- a stage-by-stage timing table;
- explicit latency budgets proposed for
.own LSP and C# hybrid host;
- a list of dominant costs confirmed by profiling.
Guardrails
- No optimization PR in this issue.
- No allocator/interner/rayon change based only on intuition.
- No claiming Rust speedup from solver-only microbenchmarks while excluding extraction or rendering.
- No hidden use of different inputs between engines.
- Do not add unstable benchmarks as mandatory PR gates until variance is understood.
Acceptance
Parent: #250
Recommended tier: medium/local-agent
Can begin after: #251
Should inform: #262, #264, #265
Goal
Create a reproducible performance and latency baseline for the current Owen pipeline and the emerging Rust core before introducing LSP/incremental architecture or declaring a cutover performance win.
The primary IDE metric is edit-to-diagnostic latency, not a vague batch multiplier.
Workloads
Record representative workloads for:
.ownfile;.ownmodule;.csproj;.sln;Pin source commits and exact commands.
Measurements
Measure separately where possible:
For the Rust path, do not benchmark incomplete placeholders as if they represent the final production route. Clearly mark unavailable stages.
Method discipline
Outputs
Add:
.ownLSP and C# hybrid host;Guardrails
Acceptance