OXYGENHUB

Import benchmarks: VS Code, then the Linux kernel issue #81 open andymccall opened this · 1 comment

andymccall

Andy, 2026-10-07: VS Code (166k commits, ~14k merges) is the git import's test case, the Linux kernel next; make the import as quick as possible.

Benchmark on Earth, repeatable:

  • fixed slices of vscode.git: the first 20k commits (shallow), and 2,000 commits resumed from a recovered copy at ~120k (deep, where merges and long histories bite);
  • per run: commits/h, merge vs ordinary times, peak RSS, store size, and git verify of what it imported;
  • results kept per oxygen commit, so each optimisation is measured against the last.

Known work, in order: verify partial merges at depth (bb3f3635; needs git verify to run in bounded memory); per-file graph checkpoints so long-lived files are not replayed from their whole history; cache the tree view between commits (~0.4 s per commit). Then Linux: disk and memory plan first (1.3M commits).

Refs issue #80.

referenced by 2 changes on 8 Oct 2026

ee6aa3e81bc8 f0406c3b40ed

andymccall

Benchmark procedure (on Earth, ~claude/bench/benchmarks/bench.sh; results in results.tsv, one line per run):

  • shallow: the first 20 000 commits of vscode.git into a fresh repository (OXY_IMPORT_STOP_AFTER), then git verify of what it imported;
  • deep: a fresh copy of the 139k import backup, oxy git recover, 400 more commits with the trace, then git verify --last 450. Each line records the oxy build, the environment (e.g. OXY_IMPORT_PARTIAL_MERGES=1), commits/h, peak RSS, store size, and the import and verify results. Run detached at low priority after any change to what an import builds or how fast: setsid nohup ~/bench/benchmarks/bench.sh deep ~/bench/verbin/oxy OXY_IMPORT_PARTIAL_MERGES=1 > /dev/null 2>&1 < /dev/null & First full result (the live import, 2026-10-05..08): all 166 425 commits, but verify found 50 differences in the first 30k: oxygen#87 (fixed) and one orphan tree conflict not reproduced on the current build. A re-import on the current build is the next baseline.

andymccall set labels performance ·