mirror of
https://github.com/zed-industries/zed.git
synced 2025-01-11 05:00:16 +00:00
eb7b5a7131
When working on a repro for a different issue that involved a worktree with lots of files (100k to be precise), UI became pretty unresponsive. I pinned it down to us repeatedly preparing a HashSet of all paths in the currently-scrolled-to worktree, once per each entry in the range passed to for_each_visible_range (which is e.g. called during rendering). This PR makes that hashing happen just once per worktree. Additionally, we no longer iterate over (potentially) all entries in a given worktree when calculating the depth of a given entry. Note that we could probably be smarter about this still; instead of recalculating the hashset per each call to for_each_visible_entry, we could do it whenever we update entries in the project panel. However, with this PR I wanted to get a quick bang for a small buck; I'm pretty confident in the change as is, it is relatively straightforward and messing with worktree updates is more involved. Release Notes: - Improvement performance of project panel in large worktrees |
||
---|---|---|
.. | ||
src | ||
Cargo.toml | ||
LICENSE-GPL |