Skip to content

Workflow status is tracked in GitHub: https://github.com/emulebb/emulebb/issues/39. This local document is retained as an engineering spec/evidence record.

BUG-129 - Follow up remaining C++ hot-path performance findings

Summary

Track the concrete non-REST hot-path findings that were not selected for the immediate RC1 REST compatibility slice. These are not speculative rewrites; each item points to repeated full-list work that can become visible on large profiles or bursty network/UI paths.

Deferred Findings

  • srchybrid/DownloadQueue.cpp: SortByPriority() sorts a linked CList through repeated FindIndex() calls and can run once per added link during bulk intake.
  • srchybrid/DownloadQueue.cpp: CheckAndAddSource() scans every part file and source for each newly discovered source; add a source identity index keyed by user hash and IP:port before considering broader flow changes.
  • srchybrid/SearchListCtrl.cpp: grouped search-result source updates repeat full result scans and list-control FindItem() calls.
  • srchybrid/DownloadListCtrl.cpp: category switching walks all tracked rows and then performs linear list-control searches while showing/hiding rows.
  • srchybrid/SharedFileList.cpp: Kad source/note publishing rotates by index through GetFileByIndex(), which rescans the shared map from the beginning.

Acceptance Criteria

  • [ ] Download priority sorting either uses a vector-backed sort or defers one sort until the end of bulk link intake.
  • [ ] Source duplicate detection has an indexed fast path with a documented fallback for repair or inconsistent state.
  • [ ] Search-result grouped row updates avoid repeated whole-result scans for a single touched parent.
  • [ ] Download category switching rebuilds visible rows in one bounded pass or maintains a reliable pointer-to-row index.
  • [ ] Kad shared-file publish rotation avoids index-based rescans over the shared-file map.

Notes

SharedFilesCtrl::SortVisibleFiles was not reflagged here because the previous startup hot path was fixed by app commit f91fd8cd.