pub struct LockfreeAnalysis {
pub thread_stats: HashMap<u64, ThreadStats>,
pub hottest_call_stacks: Vec<HotCallStack>,
pub thread_interactions: Vec<ThreadInteraction>,
pub memory_peaks: Vec<MemoryPeak>,
pub performance_bottlenecks: Vec<PerformanceBottleneck>,
pub summary: AnalysisSummary,
}
Expand description
Comprehensive analysis results from multiple threads
Fields§
§thread_stats: HashMap<u64, ThreadStats>
Statistics for each thread
hottest_call_stacks: Vec<HotCallStack>
Most frequently used call stacks across all threads
thread_interactions: Vec<ThreadInteraction>
Detected interactions between threads
memory_peaks: Vec<MemoryPeak>
Memory usage peaks across all threads
performance_bottlenecks: Vec<PerformanceBottleneck>
Detected performance bottlenecks
summary: AnalysisSummary
Overall summary statistics
Implementations§
Source§impl LockfreeAnalysis
impl LockfreeAnalysis
Sourcepub fn calculate_summary(&mut self, analysis_start: Instant)
pub fn calculate_summary(&mut self, analysis_start: Instant)
Calculates and updates the summary statistics
Sourcepub fn get_most_active_threads(&self, limit: usize) -> Vec<(u64, u64)>
pub fn get_most_active_threads(&self, limit: usize) -> Vec<(u64, u64)>
Gets threads with highest allocation activity
Sourcepub fn get_highest_memory_threads(&self, limit: usize) -> Vec<(u64, usize)>
pub fn get_highest_memory_threads(&self, limit: usize) -> Vec<(u64, usize)>
Gets threads with highest memory usage
Sourcepub fn get_critical_bottlenecks(
&self,
severity_threshold: f64,
) -> Vec<&PerformanceBottleneck>
pub fn get_critical_bottlenecks( &self, severity_threshold: f64, ) -> Vec<&PerformanceBottleneck>
Gets most severe performance bottlenecks
Trait Implementations§
Source§impl<'__de, __Context> BorrowDecode<'__de, __Context> for LockfreeAnalysis
impl<'__de, __Context> BorrowDecode<'__de, __Context> for LockfreeAnalysis
Source§fn borrow_decode<__D: BorrowDecoder<'__de, Context = __Context>>(
decoder: &mut __D,
) -> Result<Self, DecodeError>
fn borrow_decode<__D: BorrowDecoder<'__de, Context = __Context>>( decoder: &mut __D, ) -> Result<Self, DecodeError>
Attempt to decode this type with the given BorrowDecode.
Source§impl Clone for LockfreeAnalysis
impl Clone for LockfreeAnalysis
Source§fn clone(&self) -> LockfreeAnalysis
fn clone(&self) -> LockfreeAnalysis
Returns a duplicate of the value. Read more
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source
. Read moreSource§impl Debug for LockfreeAnalysis
impl Debug for LockfreeAnalysis
Source§impl<__Context> Decode<__Context> for LockfreeAnalysis
impl<__Context> Decode<__Context> for LockfreeAnalysis
Source§impl Default for LockfreeAnalysis
impl Default for LockfreeAnalysis
Source§impl<'de> Deserialize<'de> for LockfreeAnalysis
impl<'de> Deserialize<'de> for LockfreeAnalysis
Source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
Deserialize this value from the given Serde deserializer. Read more
Source§impl Encode for LockfreeAnalysis
impl Encode for LockfreeAnalysis
Auto Trait Implementations§
impl Freeze for LockfreeAnalysis
impl RefUnwindSafe for LockfreeAnalysis
impl Send for LockfreeAnalysis
impl Sync for LockfreeAnalysis
impl Unpin for LockfreeAnalysis
impl UnwindSafe for LockfreeAnalysis
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
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 more