Struct bevy::diagnostic::Diagnostic
pub struct Diagnostic {
pub id: DiagnosticId,
pub name: Cow<'static, str>,
pub suffix: Cow<'static, str>,
pub is_enabled: bool,
/* private fields */
}
Expand description
A timeline of DiagnosticMeasurement
s of a specific type.
Diagnostic examples: frames per second, CPU usage, network latency
Fields§
§id: DiagnosticId
§name: Cow<'static, str>
§suffix: Cow<'static, str>
§is_enabled: bool
Implementations§
§impl Diagnostic
impl Diagnostic
pub fn add_measurement(&mut self, measurement: DiagnosticMeasurement)
pub fn add_measurement(&mut self, measurement: DiagnosticMeasurement)
Add a new value as a DiagnosticMeasurement
.
pub fn new(
id: DiagnosticId,
name: impl Into<Cow<'static, str>>,
max_history_length: usize
) -> Diagnostic
pub fn new( id: DiagnosticId, name: impl Into<Cow<'static, str>>, max_history_length: usize ) -> Diagnostic
Create a new diagnostic with the given ID, name and maximum history.
pub fn with_suffix(self, suffix: impl Into<Cow<'static, str>>) -> Diagnostic
pub fn with_suffix(self, suffix: impl Into<Cow<'static, str>>) -> Diagnostic
Add a suffix to use when logging the value, can be used to show a unit.
pub fn with_smoothing_factor(self, smoothing_factor: f64) -> Diagnostic
pub fn with_smoothing_factor(self, smoothing_factor: f64) -> Diagnostic
The smoothing factor used for the exponential smoothing used for
smoothed
.
If measurements come in less frequently than smoothing_factor
seconds
apart, no smoothing will be applied. As measurements come in more
frequently, the smoothing takes a greater effect such that it takes
approximately smoothing_factor
seconds for 83% of an instantaneous
change in measurement to e reflected in the smoothed value.
A smoothing factor of 0.0 will effectively disable smoothing.
pub fn measurement(&self) -> Option<&DiagnosticMeasurement>
pub fn measurement(&self) -> Option<&DiagnosticMeasurement>
Get the latest measurement from this diagnostic.
pub fn average(&self) -> Option<f64>
pub fn average(&self) -> Option<f64>
Return the simple moving average of this diagnostic’s recent values. N.B. this a cheap operation as the sum is cached.
pub fn smoothed(&self) -> Option<f64>
pub fn smoothed(&self) -> Option<f64>
Return the exponential moving average of this diagnostic.
This is by default tuned to behave reasonably well for a typical
measurement that changes every frame such as frametime. This can be
adjusted using with_smoothing_factor
.
pub fn history_len(&self) -> usize
pub fn history_len(&self) -> usize
Return the number of elements for this diagnostic.
pub fn duration(&self) -> Option<Duration>
pub fn duration(&self) -> Option<Duration>
Return the duration between the oldest and most recent values for this diagnostic.
pub fn get_max_history_length(&self) -> usize
pub fn get_max_history_length(&self) -> usize
Return the maximum number of elements for this diagnostic.
pub fn values(&self) -> impl Iterator<Item = &f64>
pub fn measurements(&self) -> impl Iterator<Item = &DiagnosticMeasurement>
pub fn clear_history(&mut self)
pub fn clear_history(&mut self)
Clear the history of this diagnostic.
Trait Implementations§
Auto Trait Implementations§
impl RefUnwindSafe for Diagnostic
impl Send for Diagnostic
impl Sync for Diagnostic
impl Unpin for Diagnostic
impl UnwindSafe for Diagnostic
Blanket Implementations§
§impl<T, U> AsBindGroupShaderType<U> for Twhere
U: ShaderType,
&'a T: for<'a> Into<U>,
impl<T, U> AsBindGroupShaderType<U> for Twhere U: ShaderType, &'a T: for<'a> Into<U>,
§fn as_bind_group_shader_type(&self, _images: &RenderAssets<Image>) -> U
fn as_bind_group_shader_type(&self, _images: &RenderAssets<Image>) -> U
T
ShaderType
for self
. When used in AsBindGroup
derives, it is safe to assume that all images in self
exist.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
§impl<T> Downcast for Twhere
T: Any,
impl<T> Downcast for Twhere T: Any,
§fn into_any(self: Box<T, Global>) -> Box<dyn Any, Global>
fn into_any(self: Box<T, Global>) -> Box<dyn Any, Global>
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, Global>) -> Rc<dyn Any, Global>
fn into_any_rc(self: Rc<T, Global>) -> Rc<dyn Any, Global>
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)
&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)
&mut Trait
(where Trait: Downcast
) to &Any
. This is needed since Rust cannot
generate &mut Any
’s vtable from &mut Trait
’s.