Skip to content

IDE foundation: establish cold/warm/incremental latency and memory baselines #263

Description

@PhysShell

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:

  1. minimal .own file;
  2. medium .own module;
  3. corpus batch;
  4. single C# file through Roslyn extractor → OwnIR → core;
  5. representative .csproj;
  6. representative multi-project .sln;
  7. selected large real-world solution;
  8. 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

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions