kate-deft/docs
Levi Neely 00f81f7f56 Perf: parallelize the full-N palette scan across the thread pool
PaletteModel::rebuild splits the bulk score-only scan into per-thread
chunks via QtConcurrent::blockingMapped when item count exceeds
kParallelThreshold (10000). The scan is a pure map over read-only data
(FuzzyRanker::score is a stateless static; m_items not mutated); chunks
are concatenated in order and finalizeVisible imposes a deterministic
sort, so the result is bit-identical to the serial path regardless of
thread timing. Incremental (type-forward) path stays serial — it only
touches <=1000 items.

First-scan at 397k symbols (mobydick, 16 cores): ~373ms -> ~61ms.
Link Qt6::Concurrent into the palette lib. New test
parallelScanIsCorrectAndDeterministic (40k items) guards correctness.
2026-10-08 11:38:32 +02:00
..
PERF.md Perf: parallelize the full-N palette scan across the thread pool 2026-10-08 11:38:32 +02:00
PLAN.md Perf: async + cached project indexing (fixes Alt+G open stall) 2026-10-08 11:02:52 +02:00
radials.example.json Radial: add Go-to-File and Go-to-Symbol slices 2026-10-08 10:43:56 +02:00