mirror of
https://github.com/rust-lang/rust-analyzer.git
synced 2025-10-01 11:31:15 +00:00
Move print_memory_usage to cli.rs
This commit is contained in:
parent
c007ac3830
commit
2fdde98b5c
@ -10,8 +10,9 @@ mod ssr;
|
|||||||
use std::io::Read;
|
use std::io::Read;
|
||||||
|
|
||||||
use anyhow::Result;
|
use anyhow::Result;
|
||||||
use ide::Analysis;
|
use ide::{Analysis, AnalysisHost};
|
||||||
use syntax::{AstNode, SourceFile};
|
use syntax::{AstNode, SourceFile};
|
||||||
|
use vfs::Vfs;
|
||||||
|
|
||||||
pub use self::{
|
pub use self::{
|
||||||
analysis_bench::{BenchCmd, BenchWhat, Position},
|
analysis_bench::{BenchCmd, BenchWhat, Position},
|
||||||
@ -82,3 +83,23 @@ fn report_metric(metric: &str, value: u64, unit: &str) {
|
|||||||
}
|
}
|
||||||
println!("METRIC:{}:{}:{}", metric, value, unit)
|
println!("METRIC:{}:{}:{}", metric, value, unit)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
fn print_memory_usage(mut host: AnalysisHost, vfs: Vfs) {
|
||||||
|
let mut mem = host.per_query_memory_usage();
|
||||||
|
|
||||||
|
let before = profile::memory_usage();
|
||||||
|
drop(vfs);
|
||||||
|
let vfs = before.allocated - profile::memory_usage().allocated;
|
||||||
|
mem.push(("VFS".into(), vfs));
|
||||||
|
|
||||||
|
let before = profile::memory_usage();
|
||||||
|
drop(host);
|
||||||
|
mem.push(("Unaccounted".into(), before.allocated - profile::memory_usage().allocated));
|
||||||
|
|
||||||
|
mem.push(("Remaining".into(), profile::memory_usage().allocated));
|
||||||
|
|
||||||
|
for (name, bytes) in mem {
|
||||||
|
// NOTE: Not a debug print, so avoid going through the `eprintln` defined above.
|
||||||
|
eprintln!("{:>8} {}", bytes, name);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
@ -12,10 +12,7 @@ use ide_db::base_db::{
|
|||||||
};
|
};
|
||||||
use vfs::AbsPathBuf;
|
use vfs::AbsPathBuf;
|
||||||
|
|
||||||
use crate::{
|
use crate::cli::{load_cargo::load_cargo, print_memory_usage, Verbosity};
|
||||||
cli::{load_cargo::load_cargo, Verbosity},
|
|
||||||
print_memory_usage,
|
|
||||||
};
|
|
||||||
|
|
||||||
pub struct BenchCmd {
|
pub struct BenchCmd {
|
||||||
pub path: PathBuf,
|
pub path: PathBuf,
|
||||||
|
@ -23,11 +23,9 @@ use rustc_hash::FxHashSet;
|
|||||||
use stdx::format_to;
|
use stdx::format_to;
|
||||||
use syntax::AstNode;
|
use syntax::AstNode;
|
||||||
|
|
||||||
use crate::{
|
use crate::cli::{
|
||||||
cli::{
|
load_cargo::load_cargo, print_memory_usage, progress_report::ProgressReport, report_metric,
|
||||||
load_cargo::load_cargo, progress_report::ProgressReport, report_metric, Result, Verbosity,
|
Result, Verbosity,
|
||||||
},
|
|
||||||
print_memory_usage,
|
|
||||||
};
|
};
|
||||||
use profile::StopWatch;
|
use profile::StopWatch;
|
||||||
|
|
||||||
|
@ -37,10 +37,8 @@ mod document;
|
|||||||
pub mod lsp_ext;
|
pub mod lsp_ext;
|
||||||
pub mod config;
|
pub mod config;
|
||||||
|
|
||||||
use ide::AnalysisHost;
|
|
||||||
use serde::de::DeserializeOwned;
|
use serde::de::DeserializeOwned;
|
||||||
use std::fmt;
|
use std::fmt;
|
||||||
use vfs::Vfs;
|
|
||||||
|
|
||||||
pub use crate::{caps::server_capabilities, main_loop::main_loop};
|
pub use crate::{caps::server_capabilities, main_loop::main_loop};
|
||||||
|
|
||||||
@ -72,23 +70,3 @@ impl fmt::Display for LspError {
|
|||||||
}
|
}
|
||||||
|
|
||||||
impl std::error::Error for LspError {}
|
impl std::error::Error for LspError {}
|
||||||
|
|
||||||
fn print_memory_usage(mut host: AnalysisHost, vfs: Vfs) {
|
|
||||||
let mut mem = host.per_query_memory_usage();
|
|
||||||
|
|
||||||
let before = profile::memory_usage();
|
|
||||||
drop(vfs);
|
|
||||||
let vfs = before.allocated - profile::memory_usage().allocated;
|
|
||||||
mem.push(("VFS".into(), vfs));
|
|
||||||
|
|
||||||
let before = profile::memory_usage();
|
|
||||||
drop(host);
|
|
||||||
mem.push(("Unaccounted".into(), before.allocated - profile::memory_usage().allocated));
|
|
||||||
|
|
||||||
mem.push(("Remaining".into(), profile::memory_usage().allocated));
|
|
||||||
|
|
||||||
for (name, bytes) in mem {
|
|
||||||
// NOTE: Not a debug print, so avoid going through the `eprintln` defined above.
|
|
||||||
std::eprintln!("{:>8} {}", bytes, name);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user