diff options
-rw-r--r-- | crates/rust-analyzer/src/cli/analysis_stats.rs | 18 |
1 files changed, 14 insertions, 4 deletions
diff --git a/crates/rust-analyzer/src/cli/analysis_stats.rs b/crates/rust-analyzer/src/cli/analysis_stats.rs index 14982919d..846264046 100644 --- a/crates/rust-analyzer/src/cli/analysis_stats.rs +++ b/crates/rust-analyzer/src/cli/analysis_stats.rs | |||
@@ -273,12 +273,22 @@ pub fn analysis_stats( | |||
273 | println!("Total: {:?}, {}", analysis_time.elapsed(), ra_prof::memory_usage()); | 273 | println!("Total: {:?}, {}", analysis_time.elapsed(), ra_prof::memory_usage()); |
274 | 274 | ||
275 | if memory_usage { | 275 | if memory_usage { |
276 | for (name, bytes) in host.per_query_memory_usage() { | 276 | let mut mem = host.per_query_memory_usage(); |
277 | println!("{:>8} {}", bytes, name) | 277 | |
278 | } | 278 | let before = ra_prof::memory_usage(); |
279 | drop(vfs); | ||
280 | let vfs = before.allocated - ra_prof::memory_usage().allocated; | ||
281 | mem.push(("VFS".into(), vfs)); | ||
282 | |||
279 | let before = ra_prof::memory_usage(); | 283 | let before = ra_prof::memory_usage(); |
280 | drop(host); | 284 | drop(host); |
281 | println!("leftover: {}", before.allocated - ra_prof::memory_usage().allocated) | 285 | mem.push(("Unaccounted".into(), before.allocated - ra_prof::memory_usage().allocated)); |
286 | |||
287 | mem.push(("Remaining".into(), ra_prof::memory_usage().allocated)); | ||
288 | |||
289 | for (name, bytes) in mem { | ||
290 | println!("{:>8} {}", bytes, name) | ||
291 | } | ||
282 | } | 292 | } |
283 | 293 | ||
284 | Ok(()) | 294 | Ok(()) |