kate-deft/docs
Levi Neely 8dd2995e36 Perf: measure switcher bottlenecks, add incremental re-rank
Add a benchmark harness (src/project/bench_switcher.cpp, manual target)
that times the Go-to-File/Symbol pipeline against a real project and
writes a metrics file. Measured on mobydick (12.2k files, 17.2k symbols);
findings in docs/PERF.md.

Bottleneck: PaletteModel::setQuery re-scored all N every keystroke
(Debug: 270-600ms/keystroke; cost grew with query length). Fix: when the
query is a pure append, re-score only the currently-visible subset — the
match set is monotonic under appending, so this is exact. Later keystrokes
drop from O(N) to O(matches) (symbols 'server' 30ms -> 9ms in Release).
Guarded by test_palettemodel::incrementalMatchesFullScan.

Also documented: shipped plugin is a Debug build (~5-8x slower than
Release), and ctags/listFiles run ~0.1-1s synchronously on open (move
off-thread = open follow-up).
2026-10-08 10:54:04 +02:00
..
PERF.md Perf: measure switcher bottlenecks, add incremental re-rank 2026-10-08 10:54:04 +02:00
PLAN.md Launchers: handle Alt+X/P/G in eventFilter, not QAction shortcuts 2026-10-08 10:42:28 +02:00
radials.example.json Radial: add Go-to-File and Go-to-Symbol slices 2026-10-08 10:43:56 +02:00