Profiling tweaks

This commit is contained in:
Aleksey Kladov 2020-07-11 03:04:37 +02:00
parent 539659cde3
commit e7ba7f47a7
3 changed files with 9 additions and 0 deletions

View file

@ -20,3 +20,8 @@ jemalloc-ctl = { version = "0.3.3", optional = true }
[features] [features]
jemalloc = [ "jemallocator", "jemalloc-ctl" ] jemalloc = [ "jemallocator", "jemalloc-ctl" ]
cpu_profiler = [] cpu_profiler = []
# Uncomment to enable for the whole crate graph
# default = [ "backtrace" ]
# default = [ "jemalloc" ]
# default = [ "cpu_profiler" ]

View file

@ -43,6 +43,7 @@ pub struct Scope {
} }
impl Scope { impl Scope {
#[must_use]
pub fn enter() -> Scope { pub fn enter() -> Scope {
let prev = IN_SCOPE.with(|slot| std::mem::replace(&mut *slot.borrow_mut(), true)); let prev = IN_SCOPE.with(|slot| std::mem::replace(&mut *slot.borrow_mut(), true));
Scope { prev } Scope { prev }
@ -78,6 +79,7 @@ pub struct CpuProfiler {
_private: (), _private: (),
} }
#[must_use]
pub fn cpu_profiler() -> CpuProfiler { pub fn cpu_profiler() -> CpuProfiler {
#[cfg(feature = "cpu_profiler")] #[cfg(feature = "cpu_profiler")]
{ {

View file

@ -87,6 +87,8 @@ where
Ok(()) Ok(())
} }
} }
#[must_use]
pub fn timeit(label: &'static str) -> impl Drop { pub fn timeit(label: &'static str) -> impl Drop {
struct Guard { struct Guard {
label: &'static str, label: &'static str,