diff options
author | bors[bot] <26634292+bors[bot]@users.noreply.github.com> | 2021-06-10 22:28:14 +0100 |
---|---|---|
committer | GitHub <[email protected]> | 2021-06-10 22:28:14 +0100 |
commit | c4c1fcb8e902adcc7879996fa7f53200fb36ce33 (patch) | |
tree | 47210c5b426680b218362ca4dd58f2ee79cf6244 /crates/hir/src/has_source.rs | |
parent | f4da4de7cdd4a7dfe40a417b0100b83ec50d1e1d (diff) | |
parent | 690cd953273317ee4f3eaefd95bbd3538e929522 (diff) |
Merge #9206
9206: minor: Speed up fst items lookup during completions r=SomeoneToIgnore a=SomeoneToIgnore
Part of https://github.com/rust-analyzer/rust-analyzer/issues/7542
A number of profile calls added for `import_on_the_fly` contents.
Before:
<img width="606" alt="Screenshot 2021-06-11 at 00 19 13" src="https://user-images.githubusercontent.com/2690773/121598998-22321e80-ca4b-11eb-9a3d-dc9cb2936705.png">
After:
<img width="859" alt="Screenshot 2021-06-11 at 00 19 27" src="https://user-images.githubusercontent.com/2690773/121599022-2a8a5980-ca4b-11eb-82b6-13ab0ed56d58.png">
As a result, low hanging fruit was spotted: crazy amount of `fst_path` calls. Reducing that won ~200ms in the `import_on_the_fly @ sel` case in the `integrated_completion_benchmark`:
<img width="861" alt="Screenshot 2021-06-11 at 00 19 38" src="https://user-images.githubusercontent.com/2690773/121599277-7d641100-ca4b-11eb-8667-53206994de27.png">
I'm not sure how to proceed with the remaining `???` marks in such methods as `collect_import_map` though: there's nothing but library calls in cycles, but maybe I'll come up with something later.
Co-authored-by: Kirill Bulatov <[email protected]>
Diffstat (limited to 'crates/hir/src/has_source.rs')
0 files changed, 0 insertions, 0 deletions