rust-analyzer/crates
bors[bot] 04d64267de
Merge #4947
4947: Replace `impls_in_trait` query with smarter use of `CrateImplDefs` r=matklad a=jonas-schievink

`impls_in_trait` was allocating a whopping ~400 MB of RAM when running analysis-stats on r-a itself.

Remove it, instead adding a query that computes a summary `CrateImplDefs` map for all transitive dependencies. This can probably still be made more efficient, but this already reduces the peak memory usage by 25% without much performance impact on analysis-stats.

**Before**:

```
Total: 34.962107188s, 2083mb allocated 2141mb resident
   422mb ImplsForTraitQuery (deps)
   250mb CrateDefMapQueryQuery
   147mb MacroArgQuery
   140mb TraitSolveQuery (deps)
    68mb InferQueryQuery (deps)
    62mb ImplDatumQuery (deps)
```

**After**:

```
Total: 35.261100358s, 1520mb allocated 1569mb resident
   250mb CrateDefMapQueryQuery
   147mb MacroArgQuery
   144mb TraitSolveQuery (deps)
    68mb InferQueryQuery (deps)
    61mb ImplDatumQuery (deps)
    45mb BodyQuery
    45mb ImplDatumQuery
```

Co-authored-by: Jonas Schievink <jonasschievink@gmail.com>
2020-06-20 22:14:21 +00:00
..
paths Speedup VFS::partition 2020-06-19 15:07:32 +02:00
ra_arena Extract messy tree handling out of profiling code 2020-04-25 21:22:40 +02:00
ra_assists Merge #4878 2020-06-16 05:29:05 +00:00
ra_cfg add support of feature flag for runnables #4464 2020-05-23 20:59:18 +02:00
ra_db Don't panic on crates depending on themselves 2020-06-19 18:38:03 +02:00
ra_flycheck flycheck now uses the configured features 2020-06-09 21:47:54 +02:00
ra_fmt Introduce EffectExpr 2020-05-02 11:21:39 +02:00
ra_hir Merge #4947 2020-06-20 22:14:21 +00:00
ra_hir_def Merge #4947 2020-06-20 22:14:21 +00:00
ra_hir_expand Don't guess macro expansion crate 2020-06-11 12:13:14 +02:00
ra_hir_ty Merge #4947 2020-06-20 22:14:21 +00:00
ra_ide move tests to ra_hir_ty 2020-06-20 11:32:01 +02:00
ra_ide_db Add new query to stats 2020-06-19 23:17:53 +02:00
ra_mbe Reuse Vec allocations 2020-05-16 22:20:44 +02:00
ra_parser Allow attributes on expressions 2020-06-15 10:59:05 +02:00
ra_proc_macro proc_macro: add ability to log to stderr and view output in vscode 2020-04-23 01:57:02 +03:00
ra_proc_macro_srv Fix tests, apply code review proposals 2020-05-31 03:10:23 +03:00
ra_prof Simplify profiler impl (bubble up Option and shorten code 2020-04-26 00:55:49 +03:00
ra_project_model Accept relative paths in rust-project.json 2020-06-15 13:11:53 +02:00
ra_syntax Merge #4851 2020-06-19 15:08:52 +00:00
ra_text_edit Formalize JoinLines protocol extension 2020-05-21 20:05:33 +02:00
ra_toolchain Simplify match 2020-05-09 22:20:11 +03:00
ra_tt Reduce reallocations in ra_tt::buffer::TokenBuffer::new_inner 2020-05-16 22:20:44 +02:00
rust-analyzer Move ReqQueue to lsp-server 2020-06-20 23:24:16 +02:00
stdx Speedup VFS::partition 2020-06-19 15:07:32 +02:00
test_utils Update parser tests with env var 2020-06-15 11:02:17 +02:00
vfs Speedup VFS::partition 2020-06-19 15:07:32 +02:00