From fa89f293034c197dc3853dcc3f92a59139fd4827 Mon Sep 17 00:00:00 2001 From: David Barsky Date: Sun, 16 Mar 2025 13:07:08 -0400 Subject: [PATCH] analysis-stats: run Salsa's LRU at the end of analysis --- crates/rust-analyzer/src/cli/analysis_stats.rs | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/crates/rust-analyzer/src/cli/analysis_stats.rs b/crates/rust-analyzer/src/cli/analysis_stats.rs index b02708bf2469..29331000a119 100644 --- a/crates/rust-analyzer/src/cli/analysis_stats.rs +++ b/crates/rust-analyzer/src/cli/analysis_stats.rs @@ -22,7 +22,10 @@ use ide::{ Analysis, AnalysisHost, AnnotationConfig, DiagnosticsConfig, Edition, InlayFieldsToResolve, InlayHintsConfig, LineCol, RootDatabase, }; -use ide_db::{EditionedFileId, LineIndexDatabase, SnippetCap, base_db::SourceDatabase}; +use ide_db::{ + EditionedFileId, LineIndexDatabase, SnippetCap, + base_db::{SourceDatabase, salsa::Database}, +}; use itertools::Itertools; use load_cargo::{LoadCargoConfig, ProcMacroServerChoice, load_workspace}; use oorandom::Rand32; @@ -104,7 +107,7 @@ impl flags::AnalysisStats { } eprintln!(")"); - let host = AnalysisHost::with_database(db); + let mut host = AnalysisHost::with_database(db); let db = host.raw_database(); let mut analysis_sw = self.stop_watch(); @@ -250,6 +253,9 @@ impl flags::AnalysisStats { self.run_term_search(&workspace, db, &vfs, file_ids, verbosity); } + let db = host.raw_database_mut(); + db.trigger_lru_eviction(); + let total_span = analysis_sw.elapsed(); eprintln!("{:<20} {total_span}", "Total:"); report_metric("total time", total_span.time.as_millis() as u64, "ms");