Struct PerfReport
pub struct PerfReport {Show 15 fields
pub scenario: String,
pub frames: usize,
pub budget_us: u64,
pub over_budget: usize,
pub over_budget_pct: f64,
pub total: StatSummary,
pub sync: StatSummary,
pub build_layout: StatSummary,
pub apply_layout: StatSummary,
pub draw: StatSummary,
pub handle_event: StatSummary,
pub resource_availability: StatSummary,
pub scene_pool_wait: StatSummary,
pub presence_overlay: StatSummary,
pub samples: Vec<FrameTiming>,
}Expand description
Per-pass and total statistics over every frame a PerfScenario
produced, plus how many blew the frame budget.
Fields§
§scenario: String§frames: usize§budget_us: u64§over_budget: usizeCPU samples above the budget; does not count dropped display frames.
over_budget_pct: f64§total: StatSummary§sync: StatSummary§build_layout: StatSummary§apply_layout: StatSummary§draw: StatSummary§handle_event: StatSummary§resource_availability: StatSummary§scene_pool_wait: StatSummary§presence_overlay: StatSummary§samples: Vec<FrameTiming>Skipped when serialising the report itself so a JSON summary stays small; dump separately if wanted.
Implementations§
§impl PerfReport
impl PerfReport
pub fn from_samples( scenario: &str, samples: Vec<FrameTiming>, budget_us: u64, ) -> PerfReport
Trait Implementations§
§impl Clone for PerfReport
impl Clone for PerfReport
§fn clone(&self) -> PerfReport
fn clone(&self) -> PerfReport
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 more§impl Debug for PerfReport
impl Debug for PerfReport
§impl Display for PerfReport
impl Display for PerfReport
§impl Serialize for PerfReport
impl Serialize for PerfReport
§fn serialize<__S>(
&self,
__serializer: __S,
) -> Result<<__S as Serializer>::Ok, <__S as Serializer>::Error>where
__S: Serializer,
fn serialize<__S>(
&self,
__serializer: __S,
) -> Result<<__S as Serializer>::Ok, <__S as Serializer>::Error>where
__S: Serializer,
Serialize this value into the given Serde serializer. Read more
Auto Trait Implementations§
impl Freeze for PerfReport
impl RefUnwindSafe for PerfReport
impl Send for PerfReport
impl Sync for PerfReport
impl Unpin for PerfReport
impl UnsafeUnpin for PerfReport
impl UnwindSafe for PerfReport
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,
§impl<T> Downcast for Twhere
T: Any,
impl<T> Downcast for Twhere
T: Any,
§fn into_any(self: Box<T>) -> Box<dyn Any>
fn into_any(self: Box<T>) -> Box<dyn Any>
Convert
Box<dyn Trait> (where Trait: Downcast) to Box<dyn Any>. Box<dyn Any> can
then be further downcast into Box<ConcreteType> where ConcreteType implements Trait.§fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
Convert
Rc<Trait> (where Trait: Downcast) to Rc<Any>. Rc<Any> can then be
further downcast into Rc<ConcreteType> where ConcreteType implements Trait.§fn as_any(&self) -> &(dyn Any + 'static)
fn as_any(&self) -> &(dyn Any + 'static)
Convert
&Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot
generate &Any’s vtable from &Trait’s.§fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
Convert
&mut Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot
generate &mut Any’s vtable from &mut Trait’s.§impl<T> DowncastSync for T
impl<T> DowncastSync for T
§impl<T> Instrument for T
impl<T> Instrument for T
§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
§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