SamplingConfig

Struct SamplingConfig 

Source
pub struct SamplingConfig {
    pub large_allocation_rate: f64,
    pub medium_allocation_rate: f64,
    pub small_allocation_rate: f64,
    pub large_threshold: usize,
    pub medium_threshold: usize,
    pub frequency_threshold: u64,
}
Expand description

Sampling configuration for intelligent allocation tracking

Uses dual-dimension sampling (size + frequency) to balance performance with data completeness. Large allocations and high-frequency patterns receive priority sampling.

Fields§

§large_allocation_rate: f64

Sample rate for large allocations - usually 100% to catch memory leaks

§medium_allocation_rate: f64

Sample rate for medium allocations - balanced approach

§small_allocation_rate: f64

Sample rate for small allocations - low to reduce overhead

§large_threshold: usize

Size threshold for large allocations (bytes)

§medium_threshold: usize

Size threshold for medium allocations (bytes)

§frequency_threshold: u64

Frequency threshold for sampling boost

Implementations§

Source§

impl SamplingConfig

Source

pub fn high_precision() -> Self

Creates high-precision configuration for debugging scenarios

Higher sampling rates for more complete data capture at the cost of increased performance overhead.

Source

pub fn performance_optimized() -> Self

Creates performance-optimized configuration for production

Minimal sampling to reduce overhead while still capturing the most critical allocation patterns.

Source

pub fn leak_detection() -> Self

Creates configuration for memory leak detection

Optimized to catch large allocations and allocation patterns that might indicate memory leaks.

Source

pub fn demo() -> Self

Creates configuration for demonstrations and testing

Maximum sampling rates to ensure all data is visible in demos and tests. Not suitable for production due to very high performance overhead.

Source

pub fn validate(&self) -> Result<(), String>

Validates configuration parameters

Ensures all rates are between 0.0 and 1.0 and thresholds are reasonable.

Source

pub fn base_sampling_rate(&self, size: usize) -> f64

Calculates expected sampling rate for given allocation size

Returns the base sampling rate before frequency adjustments.

Source

pub fn frequency_multiplier(&self, frequency: u64) -> f64

Calculates frequency multiplier for sampling boost

High-frequency allocations get increased sampling rates to identify performance hotspots.

Trait Implementations§

Source§

impl Clone for SamplingConfig

Source§

fn clone(&self) -> SamplingConfig

Returns a duplicate of the value. Read more
1.0.0 · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Debug for SamplingConfig

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl Default for SamplingConfig

Source§

fn default() -> Self

Default configuration optimized for typical applications

Captures all large allocations, moderate sampling of medium allocations, and light sampling of small allocations to maintain performance.

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T> Instrument for T

Source§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more
Source§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> IntoEither for T

Source§

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 more
Source§

fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
where F: FnOnce(&Self) -> bool,

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
Source§

impl<T> Pointable for T

Source§

const ALIGN: usize

The alignment of pointer.
Source§

type Init = T

The type for initializers.
Source§

unsafe fn init(init: <T as Pointable>::Init) -> usize

Initializes a with the given initializer. Read more
Source§

unsafe fn deref<'a>(ptr: usize) -> &'a T

Dereferences the given pointer. Read more
Source§

unsafe fn deref_mut<'a>(ptr: usize) -> &'a mut T

Mutably dereferences the given pointer. Read more
Source§

unsafe fn drop(ptr: usize)

Drops the object pointed to by the given pointer. Read more
Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
Source§

impl<V, T> VZip<V> for T
where V: MultiLane<T>,

Source§

fn vzip(self) -> V

Source§

impl<T> WithSubscriber for T

Source§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more
Source§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more