Skip to content

Speed up empty-database full indexing - #5221

Merged
Widthdom merged 11 commits into
mainfrom
perf/initial-full-index
Aug 29, 2026
Merged

Speed up empty-database full indexing#5221
Widthdom merged 11 commits into
mainfrom
perf/initial-full-index

Conversation

@Widthdom

Copy link
Copy Markdown
Owner

Summary

  • Reduce the cost of the first full index on an empty database across extraction, worker handoff, reference facts, and graph candidate construction.
  • Materialize C# instantiation-family facts once and reuse indexed TEMP facts while preserving partial, overload, optional/default/params, orphan, value-type, and ambiguity semantics.
  • Keep the change set documented in English and Japanese with 11 focused commits and matching tests.

Validation

  • dotnet build CodeIndex.sln -c Release -m:1 --no-restore -p:UseSharedCompilation=false (0 warnings, 0 errors)
  • Release solution tests: net8 12,108 passed / 0 failed / 9 conditional skips; net9 11,623 passed / 0 failed / 431 conditional skips
  • DatabaseTests: 351 passed on net8 and net9
  • dotnet format CodeIndex.sln --no-restore --verify-no-changes
  • Changelog validation and git diff --check passed
  • Independent formal adversarial review: No blocking/actionable issues found.

Benchmark

Same 1,470-file corpus, fresh external database per run, Release binaries, alternating baseline/current order (B,C,C,B,C,B):

  • origin/main median: 53,349 ms
  • this branch median: 46,762 ms
  • improvement: 6,587 ms (12.35%)
  • all runs matched 12,661 chunks, 56,662 symbols, and 528,100 references; index and reference graph were complete/current

Checklist

  • The change follows the existing code style.
  • The change includes tests when behavior changes.
  • The change includes a changelog fragment when user-visible behavior changes.
  • Documentation has been updated when needed.

@Widthdom
Widthdom merged commit 41be310 into main Aug 29, 2026
11 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant