Struct rustc_data_structures::profiling::SelfProfilerRef
source · [−]pub struct SelfProfilerRef {
profiler: Option<Arc<SelfProfiler>>,
event_filter_mask: EventFilter,
print_verbose_generic_activities: bool,
print_extra_verbose_generic_activities: bool,
}Expand description
A reference to the SelfProfiler. It can be cloned and sent across thread boundaries at will.
Fields
profiler: Option<Arc<SelfProfiler>>event_filter_mask: EventFilterprint_verbose_generic_activities: boolprint_extra_verbose_generic_activities: boolImplementations
sourceimpl SelfProfilerRef
impl SelfProfilerRef
pub fn new(
profiler: Option<Arc<SelfProfiler>>,
print_verbose_generic_activities: bool,
print_extra_verbose_generic_activities: bool
) -> SelfProfilerRef
fn exec<F>(&self, event_filter: EventFilter, f: F) -> TimingGuard<'_> where
F: for<'a> FnOnce(&'a SelfProfiler) -> TimingGuard<'a>,
sourcepub fn verbose_generic_activity<'a>(
&'a self,
event_label: &'static str
) -> VerboseTimingGuard<'a>
pub fn verbose_generic_activity<'a>(
&'a self,
event_label: &'static str
) -> VerboseTimingGuard<'a>
Start profiling a verbose generic activity. Profiling continues until the VerboseTimingGuard returned from this call is dropped. In addition to recording a measureme event, “verbose” generic activities also print a timing entry to stdout if the compiler is invoked with -Ztime or -Ztime-passes.
sourcepub fn extra_verbose_generic_activity<'a, A>(
&'a self,
event_label: &'static str,
event_arg: A
) -> VerboseTimingGuard<'a> where
A: Borrow<str> + Into<String>,
pub fn extra_verbose_generic_activity<'a, A>(
&'a self,
event_label: &'static str,
event_arg: A
) -> VerboseTimingGuard<'a> where
A: Borrow<str> + Into<String>,
Start profiling an extra verbose generic activity. Profiling continues until the VerboseTimingGuard returned from this call is dropped. In addition to recording a measureme event, “extra verbose” generic activities also print a timing entry to stdout if the compiler is invoked with -Ztime-passes.
sourcepub fn generic_activity(&self, event_label: &'static str) -> TimingGuard<'_>
pub fn generic_activity(&self, event_label: &'static str) -> TimingGuard<'_>
Start profiling a generic activity. Profiling continues until the TimingGuard returned from this call is dropped.
sourcepub fn generic_activity_with_event_id(
&self,
event_id: EventId
) -> TimingGuard<'_>
pub fn generic_activity_with_event_id(
&self,
event_id: EventId
) -> TimingGuard<'_>
Start profiling with some event filter for a given event. Profiling continues until the TimingGuard returned from this call is dropped.
sourcepub fn generic_activity_with_arg<A>(
&self,
event_label: &'static str,
event_arg: A
) -> TimingGuard<'_> where
A: Borrow<str> + Into<String>,
pub fn generic_activity_with_arg<A>(
&self,
event_label: &'static str,
event_arg: A
) -> TimingGuard<'_> where
A: Borrow<str> + Into<String>,
Start profiling a generic activity. Profiling continues until the TimingGuard returned from this call is dropped.
sourcepub fn artifact_size<A>(&self, artifact_kind: &str, artifact_name: A, size: u64) where
A: Borrow<str> + Into<String>,
pub fn artifact_size<A>(&self, artifact_kind: &str, artifact_name: A, size: u64) where
A: Borrow<str> + Into<String>,
Record the size of an artifact that the compiler produces
artifact_kind is the class of artifact (e.g., query_cache, object_file, etc.)
artifact_name is an identifier to the specific artifact being stored (usually a filename)
pub fn generic_activity_with_args(
&self,
event_label: &'static str,
event_args: &[String]
) -> TimingGuard<'_>
sourcepub fn query_provider(&self) -> TimingGuard<'_>
pub fn query_provider(&self) -> TimingGuard<'_>
Start profiling a query provider. Profiling continues until the TimingGuard returned from this call is dropped.
sourcepub fn query_cache_hit(&self, query_invocation_id: QueryInvocationId)
pub fn query_cache_hit(&self, query_invocation_id: QueryInvocationId)
Record a query in-memory cache hit.
sourcepub fn query_blocked(&self) -> TimingGuard<'_>
pub fn query_blocked(&self) -> TimingGuard<'_>
Start profiling a query being blocked on a concurrent execution. Profiling continues until the TimingGuard returned from this call is dropped.
sourcepub fn incr_cache_loading(&self) -> TimingGuard<'_>
pub fn incr_cache_loading(&self) -> TimingGuard<'_>
Start profiling how long it takes to load a query result from the incremental compilation on-disk cache. Profiling continues until the TimingGuard returned from this call is dropped.
sourcepub fn incr_result_hashing(&self) -> TimingGuard<'_>
pub fn incr_result_hashing(&self) -> TimingGuard<'_>
Start profiling how long it takes to hash query results for incremental compilation. Profiling continues until the TimingGuard returned from this call is dropped.
fn instant_query_event(
&self,
event_kind: fn(_: &SelfProfiler) -> StringId,
query_invocation_id: QueryInvocationId,
event_filter: EventFilter
)
pub fn with_profiler(&self, f: impl FnOnce(&SelfProfiler))
sourcepub fn get_or_alloc_cached_string(&self, s: &str) -> Option<StringId>
pub fn get_or_alloc_cached_string(&self, s: &str) -> Option<StringId>
Gets a StringId for the given string. This method makes sure that
any strings going through it will only be allocated once in the
profiling data.
Returns None if the self-profiling is not enabled.
pub fn enabled(&self) -> bool
pub fn llvm_recording_enabled(&self) -> bool
pub fn get_self_profiler(&self) -> Option<Arc<SelfProfiler>>
Trait Implementations
sourceimpl Clone for SelfProfilerRef
impl Clone for SelfProfilerRef
sourcefn clone(&self) -> SelfProfilerRef
fn clone(&self) -> SelfProfilerRef
Returns a copy of the value. Read more
1.0.0 · sourcefn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from source. Read more
Auto Trait Implementations
impl !RefUnwindSafe for SelfProfilerRef
impl Send for SelfProfilerRef
impl Sync for SelfProfilerRef
impl Unpin for SelfProfilerRef
impl !UnwindSafe for SelfProfilerRef
Blanket Implementations
sourceimpl<T> BorrowMut<T> for T where
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized,
const: unstable · sourcepub fn borrow_mut(&mut self) -> &mut T
pub fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
sourceimpl<T> ToOwned for T where
T: Clone,
impl<T> ToOwned for T where
T: Clone,
type Owned = T
type Owned = T
The resulting type after obtaining ownership.
sourcepub fn to_owned(&self) -> T
pub fn to_owned(&self) -> T
Creates owned data from borrowed data, usually by cloning. Read more
sourcepub fn clone_into(&self, target: &mut T)
pub fn clone_into(&self, target: &mut T)
toowned_clone_into)Uses borrowed data to replace owned data, usually by cloning. Read more
impl<'a, T> Captures<'a> for T where
T: ?Sized,
impl<T> Erased for T
Layout
Note: Most layout information is completely unstable and may even differ between compilations. The only exception is types with certain repr(...) attributes. Please see the Rust Reference’s “Type Layout” chapter for details on type layout guarantees.
Size: 16 bytes