pub struct FlameGraphNode {
pub name: String,
pub total_time: Duration,
pub self_time: Duration,
pub samples: u64,
pub children: BTreeMap<String, FlameGraphNode>,
pub depth: usize,
}Expand description
Flame graph data structure for visualizing call hierarchies
Fields§
§name: StringFunction name
total_time: DurationTotal execution time
self_time: DurationSelf execution time (excluding children)
samples: u64Number of samples
children: BTreeMap<String, FlameGraphNode>Child nodes
depth: usizeCall depth
Implementations§
Source§impl FlameGraphNode
impl FlameGraphNode
Sourcepub fn new(name: String, depth: usize) -> FlameGraphNode
pub fn new(name: String, depth: usize) -> FlameGraphNode
Create a new flame graph node
Sourcepub fn add_sample(&mut self, duration: Duration)
pub fn add_sample(&mut self, duration: Duration)
Add a sample to this node
Sourcepub fn calculate_self_time(&mut self)
pub fn calculate_self_time(&mut self)
Calculate self time by subtracting children’s time
Sourcepub fn to_flame_graph_format(&self, prefix: &str) -> Vec<String>
pub fn to_flame_graph_format(&self, prefix: &str) -> Vec<String>
Generate flame graph format output
Trait Implementations§
Source§impl Clone for FlameGraphNode
impl Clone for FlameGraphNode
Source§fn clone(&self) -> FlameGraphNode
fn clone(&self) -> FlameGraphNode
Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreAuto Trait Implementations§
impl Freeze for FlameGraphNode
impl RefUnwindSafe for FlameGraphNode
impl Send for FlameGraphNode
impl Sync for FlameGraphNode
impl Unpin for FlameGraphNode
impl UnsafeUnpin for FlameGraphNode
impl UnwindSafe for FlameGraphNode
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§impl<T> Pointable for T
impl<T> Pointable for T
impl<T> Read<Exclusive, BecauseExclusive> for Twhere
T: ?Sized,
Source§impl<SS, SP> SupersetOf<SS> for SPwhere
SS: SubsetOf<SP>,
impl<SS, SP> SupersetOf<SS> for SPwhere
SS: SubsetOf<SP>,
Source§fn to_subset(&self) -> Option<SS>
fn to_subset(&self) -> Option<SS>
The inverse inclusion map: attempts to construct
self from the equivalent element of its
superset. Read moreSource§fn is_in_subset(&self) -> bool
fn is_in_subset(&self) -> bool
Checks if
self is actually part of its subset T (and can be converted to it).Source§fn to_subset_unchecked(&self) -> SS
fn to_subset_unchecked(&self) -> SS
Use with care! Same as
self.to_subset but without any property checks. Always succeeds.Source§fn from_subset(element: &SS) -> SP
fn from_subset(element: &SS) -> SP
The inclusion map: converts
self to the equivalent element of its superset.