diff options
| author | Michael Woerister <michaelwoerister@posteo.net> | 2016-12-16 16:27:29 -0500 |
|---|---|---|
| committer | Michael Woerister <michaelwoerister@posteo.net> | 2016-12-16 19:14:16 -0500 |
| commit | e0d26294cd2d1034accf7b7b317c877a4a9b28af (patch) | |
| tree | e2cae973c4e8e13d03f8a2a47c09c4f8873c206a | |
| parent | ed5a88e3d03a57cb390662e44611bb0d33c28a4b (diff) | |
| download | rust-e0d26294cd2d1034accf7b7b317c877a4a9b28af.tar.gz rust-e0d26294cd2d1034accf7b7b317c877a4a9b28af.zip | |
definitions: Add some timing stats for DefPathTable decoding.
| -rw-r--r-- | src/librustc/session/mod.rs | 5 | ||||
| -rw-r--r-- | src/librustc_metadata/creader.rs | 7 |
2 files changed, 11 insertions, 1 deletions
diff --git a/src/librustc/session/mod.rs b/src/librustc/session/mod.rs index 91765e68ae6..36a887e0622 100644 --- a/src/librustc/session/mod.rs +++ b/src/librustc/session/mod.rs @@ -136,6 +136,8 @@ pub struct PerfStats { pub incr_comp_bytes_hashed: Cell<u64>, // The accumulated time spent on computing symbol hashes pub symbol_hash_time: Cell<Duration>, + // The accumulated time spent decoding def path tables from metadata + pub decode_def_path_tables_time: Cell<Duration>, } impl Session { @@ -501,6 +503,8 @@ impl Session { self.perf_stats.incr_comp_hashes_count.get()); println!("Total time spent computing symbol hashes: {}", duration_to_secs_str(self.perf_stats.symbol_hash_time.get())); + println!("Total time spent decoding DefPath tables: {}", + duration_to_secs_str(self.perf_stats.decode_def_path_tables_time.get())); } } @@ -635,6 +639,7 @@ pub fn build_session_(sopts: config::Options, incr_comp_hashes_count: Cell::new(0), incr_comp_bytes_hashed: Cell::new(0), symbol_hash_time: Cell::new(Duration::from_secs(0)), + decode_def_path_tables_time: Cell::new(Duration::from_secs(0)), }, code_stats: RefCell::new(CodeStats::new()), }; diff --git a/src/librustc_metadata/creader.rs b/src/librustc_metadata/creader.rs index 9eed5cb8fe8..a9af4118c59 100644 --- a/src/librustc_metadata/creader.rs +++ b/src/librustc_metadata/creader.rs @@ -22,6 +22,7 @@ use rustc_back::PanicStrategy; use rustc::session::search_paths::PathKind; use rustc::middle; use rustc::middle::cstore::{CrateStore, validate_crate_name, ExternCrate}; +use rustc::util::common::record_time; use rustc::util::nodemap::FxHashSet; use rustc::middle::cstore::NativeLibrary; use rustc::hir::map::Definitions; @@ -297,10 +298,14 @@ impl<'a> CrateLoader<'a> { let cnum_map = self.resolve_crate_deps(root, &crate_root, &metadata, cnum, span, dep_kind); + let def_path_table = record_time(&self.sess.perf_stats.decode_def_path_tables_time, || { + crate_root.def_path_table.decode(&metadata) + }); + let mut cmeta = cstore::CrateMetadata { name: name, extern_crate: Cell::new(None), - def_path_table: crate_root.def_path_table.decode(&metadata), + def_path_table: def_path_table, proc_macros: crate_root.macro_derive_registrar.map(|_| { self.load_derive_macros(&crate_root, dylib.clone().map(|p| p.0), span) }), |
