Repository navigation
Commit d9e40bf
committed
perf(ranking): memoize prompt-independent _analyze_corpus (skips O(N^2) import-graph rebuild)
_analyze_corpus is prompt-independent but re-ran on every query, and its import-graph
build is O(N^2) (per file, _resolve_import linear-scans all files per import). On a
long-lived ranker (the MCP server) this dominated end-to-end latency on large trees
(~84s warm on ~1100 files). Memoize the result keyed by each file's path + content
hash, so repeated queries on an unchanged tree reuse it (byte-identical stats) and an
edit invalidates it. Measured: _analyze_corpus warm 0.93s -> 0.0001s. (Cold/first build
still pays the O(N^2); the algorithmic fix is a separate change.)1 parent 29071c3 commit d9e40bf
2 files changed
Lines changed: 68 additions & 0 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
698 | 698 | | |
699 | 699 | | |
700 | 700 | | |
| 701 | + | |
| 702 | + | |
| 703 | + | |
| 704 | + | |
| 705 | + | |
| 706 | + | |
| 707 | + | |
| 708 | + | |
701 | 709 | | |
702 | 710 | | |
703 | 711 | | |
| |||
808 | 816 | | |
809 | 817 | | |
810 | 818 | | |
| 819 | + | |
811 | 820 | | |
812 | 821 | | |
| 822 | + | |
| 823 | + | |
| 824 | + | |
| 825 | + | |
| 826 | + | |
| 827 | + | |
| 828 | + | |
| 829 | + | |
| 830 | + | |
| 831 | + | |
| 832 | + | |
| 833 | + | |
| 834 | + | |
| 835 | + | |
| 836 | + | |
| 837 | + | |
| 838 | + | |
813 | 839 | | |
814 | 840 | | |
815 | 841 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
| 1 | + | |
| 2 | + | |
| 3 | + | |
| 4 | + | |
| 5 | + | |
| 6 | + | |
| 7 | + | |
| 8 | + | |
| 9 | + | |
| 10 | + | |
| 11 | + | |
| 12 | + | |
| 13 | + | |
| 14 | + | |
| 15 | + | |
| 16 | + | |
| 17 | + | |
| 18 | + | |
| 19 | + | |
| 20 | + | |
| 21 | + | |
| 22 | + | |
| 23 | + | |
| 24 | + | |
| 25 | + | |
| 26 | + | |
| 27 | + | |
| 28 | + | |
| 29 | + | |
| 30 | + | |
| 31 | + | |
| 32 | + | |
| 33 | + | |
| 34 | + | |
| 35 | + | |
| 36 | + | |
| 37 | + | |
| 38 | + | |
| 39 | + | |
| 40 | + | |
| 41 | + | |
| 42 | + | |
0 commit comments