diff --git a/Cargo.lock b/Cargo.lock index 67259aed8ebee..c1dd0dd9adb03 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -2053,12 +2053,13 @@ dependencies = [ [[package]] name = "measureme" -version = "0.4.0" +version = "0.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cd21b0e6e1af976b269ce062038fe5e1b9ca2f817ab7a3af09ec4210aebf0d30" +checksum = "c420bbc064623934620b5ab2dc0cf96451b34163329e82f95e7fa1b7b99a6ac8" dependencies = [ "byteorder", "memmap", + "parking_lot 0.9.0", "rustc-hash", ] @@ -2070,9 +2071,9 @@ checksum = "2efc7bc57c883d4a4d6e3246905283d8dae951bb3bd32f49d6ef297f546e1c39" [[package]] name = "memmap" -version = "0.6.2" +version = "0.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e2ffa2c986de11a9df78620c01eeaaf27d94d3ff02bf81bfcca953102dd0c6ff" +checksum = "6585fd95e7bb50d6cc31e20d4cf9afb4e2ba16c5846fc76793f11218da9c475b" dependencies = [ "libc", "winapi 0.3.8", diff --git a/src/librustc/Cargo.toml b/src/librustc/Cargo.toml index fb30d6c519c90..b2596352abcb0 100644 --- a/src/librustc/Cargo.toml +++ b/src/librustc/Cargo.toml @@ -37,5 +37,5 @@ byteorder = { version = "1.3" } chalk-engine = { version = "0.9.0", default-features=false } rustc_fs_util = { path = "../librustc_fs_util" } smallvec = { version = "1.0", features = ["union", "may_dangle"] } -measureme = "0.4" +measureme = "0.5" rustc_error_codes = { path = "../librustc_error_codes" } diff --git a/src/librustc_codegen_ssa/Cargo.toml b/src/librustc_codegen_ssa/Cargo.toml index 478c3a9084c09..22d7a303b1d35 100644 --- a/src/librustc_codegen_ssa/Cargo.toml +++ b/src/librustc_codegen_ssa/Cargo.toml @@ -13,7 +13,7 @@ test = false bitflags = "1.2.1" cc = "1.0.1" num_cpus = "1.0" -memmap = "0.6" +memmap = "0.7" log = "0.4.5" libc = "0.2.44" jobserver = "0.1.11" diff --git a/src/librustc_data_structures/Cargo.toml b/src/librustc_data_structures/Cargo.toml index 0fd47115022c2..7fa40b8a86905 100644 --- a/src/librustc_data_structures/Cargo.toml +++ b/src/librustc_data_structures/Cargo.toml @@ -26,7 +26,7 @@ rustc-hash = "1.0.1" smallvec = { version = "1.0", features = ["union", "may_dangle"] } rustc_index = { path = "../librustc_index", package = "rustc_index" } bitflags = "1.2.1" -measureme = "0.4" +measureme = "0.5" [dependencies.parking_lot] version = "0.9" diff --git a/src/librustc_data_structures/profiling.rs b/src/librustc_data_structures/profiling.rs index 86f59bfabe627..f9bfe5a1652ae 100644 --- a/src/librustc_data_structures/profiling.rs +++ b/src/librustc_data_structures/profiling.rs @@ -7,7 +7,7 @@ use std::sync::Arc; use std::thread::ThreadId; use std::u32; -use measureme::{StringId, TimestampKind}; +use measureme::{StringId}; /// MmapSerializatioSink is faster on macOS and Linux /// but FileSerializationSink is faster on Windows @@ -63,8 +63,8 @@ const EVENT_FILTERS_BY_NAME: &[(&str, EventFilter)] = &[ ("incr-cache-load", EventFilter::INCR_CACHE_LOADS), ]; -fn thread_id_to_u64(tid: ThreadId) -> u64 { - unsafe { mem::transmute::(tid) } +fn thread_id_to_u32(tid: ThreadId) -> u32 { + unsafe { mem::transmute::(tid) as u32 } } @@ -149,11 +149,10 @@ impl SelfProfilerRef { /// Record a query in-memory cache hit. #[inline(always)] pub fn query_cache_hit(&self, query_name: impl QueryName) { - self.non_guard_query_event( + self.instant_query_event( |profiler| profiler.query_cache_hit_event_kind, query_name, EventFilter::QUERY_CACHE_HITS, - TimestampKind::Instant, ); } @@ -184,22 +183,20 @@ impl SelfProfilerRef { } #[inline(always)] - fn non_guard_query_event( + fn instant_query_event( &self, event_kind: fn(&SelfProfiler) -> StringId, query_name: impl QueryName, event_filter: EventFilter, - timestamp_kind: TimestampKind ) { drop(self.exec(event_filter, |profiler| { let event_id = SelfProfiler::get_query_name_string_id(query_name); - let thread_id = thread_id_to_u64(std::thread::current().id()); + let thread_id = thread_id_to_u32(std::thread::current().id()); - profiler.profiler.record_event( + profiler.profiler.record_instant_event( event_kind(profiler), event_id, thread_id, - timestamp_kind, ); TimingGuard::none() @@ -306,7 +303,7 @@ impl<'a> TimingGuard<'a> { event_kind: StringId, event_id: StringId, ) -> TimingGuard<'a> { - let thread_id = thread_id_to_u64(std::thread::current().id()); + let thread_id = thread_id_to_u32(std::thread::current().id()); let raw_profiler = &profiler.profiler; let timing_guard = raw_profiler.start_recording_interval_event(event_kind, event_id, diff --git a/src/librustc_metadata/Cargo.toml b/src/librustc_metadata/Cargo.toml index b70cc52938637..88d1c501bae5c 100644 --- a/src/librustc_metadata/Cargo.toml +++ b/src/librustc_metadata/Cargo.toml @@ -12,7 +12,7 @@ doctest = false [dependencies] flate2 = "1.0" log = "0.4" -memmap = "0.6" +memmap = "0.7" smallvec = { version = "1.0", features = ["union", "may_dangle"] } rustc = { path = "../librustc" } rustc_data_structures = { path = "../librustc_data_structures" }