diff options
author | Aleksey Kladov <[email protected]> | 2019-01-26 17:33:33 +0000 |
---|---|---|
committer | Aleksey Kladov <[email protected]> | 2019-01-27 19:57:18 +0000 |
commit | 7801f6b50f69b33743145f61989bcb945c24dbaa (patch) | |
tree | c8298c6cf601f40099c95bd685eae9827b798213 /crates/ra_ide_api/src/status.rs | |
parent | 19f77603c0aed92ec70a836dae4d447b8fcab922 (diff) |
automatically collect garbage
Diffstat (limited to 'crates/ra_ide_api/src/status.rs')
-rw-r--r-- | crates/ra_ide_api/src/status.rs | 18 |
1 files changed, 13 insertions, 5 deletions
diff --git a/crates/ra_ide_api/src/status.rs b/crates/ra_ide_api/src/status.rs index e11eed223..0dde30ae0 100644 --- a/crates/ra_ide_api/src/status.rs +++ b/crates/ra_ide_api/src/status.rs | |||
@@ -15,9 +15,13 @@ use crate::{ | |||
15 | symbol_index::{SymbolIndex, LibrarySymbolsQuery}, | 15 | symbol_index::{SymbolIndex, LibrarySymbolsQuery}, |
16 | }; | 16 | }; |
17 | 17 | ||
18 | pub(crate) fn syntax_tree_stats(db: &RootDatabase) -> SyntaxTreeStats { | ||
19 | db.query(ParseQuery).entries::<SyntaxTreeStats>() | ||
20 | } | ||
21 | |||
18 | pub(crate) fn status(db: &RootDatabase) -> String { | 22 | pub(crate) fn status(db: &RootDatabase) -> String { |
19 | let files_stats = db.query(FileTextQuery).entries::<FilesStats>(); | 23 | let files_stats = db.query(FileTextQuery).entries::<FilesStats>(); |
20 | let syntax_tree_stats = db.query(ParseQuery).entries::<SyntaxTreeStats>(); | 24 | let syntax_tree_stats = syntax_tree_stats(db); |
21 | let symbols_stats = db | 25 | let symbols_stats = db |
22 | .query(LibrarySymbolsQuery) | 26 | .query(LibrarySymbolsQuery) |
23 | .entries::<LibrarySymbolsStats>(); | 27 | .entries::<LibrarySymbolsStats>(); |
@@ -26,8 +30,12 @@ pub(crate) fn status(db: &RootDatabase) -> String { | |||
26 | interner.len() | 30 | interner.len() |
27 | }; | 31 | }; |
28 | format!( | 32 | format!( |
29 | "{}\n{}\n{}\nn_defs {}\n", | 33 | "{}\n{}\n{}\nn_defs {}\nGC {:?} seconds ago", |
30 | files_stats, symbols_stats, syntax_tree_stats, n_defs | 34 | files_stats, |
35 | symbols_stats, | ||
36 | syntax_tree_stats, | ||
37 | n_defs, | ||
38 | db.last_gc.elapsed().as_secs(), | ||
31 | ) | 39 | ) |
32 | } | 40 | } |
33 | 41 | ||
@@ -58,9 +66,9 @@ impl FromIterator<TableEntry<FileId, Arc<String>>> for FilesStats { | |||
58 | } | 66 | } |
59 | 67 | ||
60 | #[derive(Default)] | 68 | #[derive(Default)] |
61 | struct SyntaxTreeStats { | 69 | pub(crate) struct SyntaxTreeStats { |
62 | total: usize, | 70 | total: usize, |
63 | retained: usize, | 71 | pub(crate) retained: usize, |
64 | retained_size: Bytes, | 72 | retained_size: Bytes, |
65 | } | 73 | } |
66 | 74 | ||