Skip to main content

PerfCounter

Enum PerfCounter 

Source
#[repr(usize)]
pub enum PerfCounter {
Show 34 variants PropertyChangesRaised = 0, PropertyChangesEffective = 1, PropertyChangesWithPropertyHandlers = 2, PropertyChangesWithObjectListeners = 3, InheritanceAncestorChanges = 4, InheritedValuesCompared = 5, InheritedValuesDiffering = 6, InheritedValueWalkVisits = 7, LogicalTreeAttachments = 8, LogicalTreeDetachments = 9, ImplicitThemeLookups = 10, StyleHostsWalked = 11, StylesEvaluated = 12, StylesMatched = 13, ControlThemesEvaluated = 14, ControlThemesMatched = 15, StyleInstancesAttached = 16, StyleInstancesCreated = 17, ResourceLookups = 18, ResourceHostsProbed = 19, BindingsInstanced = 20, BindingExpressionsCreated = 21, TemplateBindingExpressionsCreated = 22, DynamicResourceExpressionsCreated = 23, BindingValuesPublished = 24, TextLayoutsCreated = 25, TextLinesFormatted = 26, TextRunCacheHits = 27, TextRunCacheMisses = 28, TextRunsShaped = 29, ContainersRecycled = 30, ContainersReused = 31, ContainersCreated = 32, ContentPresenterChildrenReplaced = 33,
}
Expand description

What is counted. Each counter names, in its documentation, the function that counts it.

Variants§

§

PropertyChangesRaised = 0

FerroObject::raise_property_changed: every notification built and passed to the on_property_changed chain of the class.

§

PropertyChangesEffective = 1

FerroObject::raise_property_changed: the ones of an effective value, which go on to the handlers of the property and the listeners of the object.

§

PropertyChangesWithPropertyHandlers = 2

PropertyChangedObservable::notify: the property has at least one handler (the class handlers and the subscriptions to the property).

§

PropertyChangesWithObjectListeners = 3

FerroObject::raise_property_changed: the object has at least one listener of its property changes.

§

InheritanceAncestorChanges = 4

ValueStore::set_inheritance_parent: the inheritance ancestor of an object changed.

§

InheritedValuesCompared = 5

ValueStore::set_inheritance_parent: the inherited properties of the old and the new ancestor chain that were paired.

§

InheritedValuesDiffering = 6

ValueStore::set_inheritance_parent: the ones whose old and new value differ, each of which starts a walk of the subtree.

§

InheritedValueWalkVisits = 7

ValueStore::inherited_value_changed: the objects such a walk reaches (the object itself and its inheritance descendants, once per property).

§

LogicalTreeAttachments = 8

StyledElement::on_attached_to_logical_tree_core: an element that was not in a logical tree enters one.

§

LogicalTreeDetachments = 9

StyledElement::on_detached_from_logical_tree_core: an element leaves its logical tree.

§

ImplicitThemeLookups = 10

StyledElement::get_effective_theme: the implicit theme was not known and was looked up as a resource.

§

StyleHostsWalked = 11

StyledElement::apply_styles: a style host between the element and the root was asked for its styles.

§

StylesEvaluated = 12

Style::try_attach_checked and ContainerQuery::try_attach_checked: a style with setters (a query with children) was matched against an element.

§

StylesMatched = 13

The same functions: the selector (the query) matched and the style was instanced on the element.

§

ControlThemesEvaluated = 14

ControlTheme::try_attach_checked: a control theme was tested against the style key of an element.

§

ControlThemesMatched = 15

ControlTheme::try_attach_checked: it applies and was instanced.

§

StyleInstancesAttached = 16

StyleBase::try_attach_instance: a style instance was added to the value store of an element.

§

StyleInstancesCreated = 17

StyleBase::try_attach_instance: the instance was built (its setters instanced) instead of the shared instance of the style being taken.

§

ResourceLookups = 18

IResourceHost::try_find_resource: a lookup up the logical tree.

§

ResourceHostsProbed = 19

IResourceHost::try_find_resource: the hosts such a lookup asked (try_get_resource of the host and of each styling parent).

§

BindingsInstanced = 20

FerroObject::bind_binding_with_anchor: a binding was instanced on a property of an object.

§

BindingExpressionsCreated = 21

UntypedBindingExpressionBase::new and TypedBindingExpression::new: a binding expression was created (by a binding, a setter, a template binding or a dynamic resource).

§

TemplateBindingExpressionsCreated = 22

TemplateBindingExpression::new.

§

DynamicResourceExpressionsCreated = 23

DynamicResourceExpression::new (the XAML runtime library).

§

BindingValuesPublished = 24

UntypedBindingExpressionBase::publish_value of a running expression and TypedBindingExpression::publish_value.

§

TextLayoutsCreated = 25

TextLayout::from_text_source.

§

TextLinesFormatted = 26

TextFormatterImpl::format_line_with_cache: a line was asked for.

§

TextRunCacheHits = 27

TextFormatterImpl::format_line_with_cache: the shaped runs of the line came from the text run cache.

§

TextRunCacheMisses = 28

TextFormatterImpl::format_line_with_cache: a cache was given, did not hold the line, and the shaped runs were added to it.

§

TextRunsShaped = 29

TextShaper::shape_text: a run was shaped by the platform shaper.

§

ContainersRecycled = 30

VirtualizingStackPanel::recycle_element: a container left the viewport, was cleared and went to the recycle pool.

§

ContainersReused = 31

VirtualizingStackPanel::get_recycled_element: a container of the pool was prepared for another item.

§

ContainersCreated = 32

VirtualizingStackPanel::create_element: a container was created.

§

ContentPresenterChildrenReplaced = 33

ContentPresenter::update_child_with: the child of a content presenter was replaced by another control or removed.

Implementations§

Source§

impl PerfCounter

Source

pub const ALL: &'static [PerfCounter]

Every counter, in the order of the report.

Source

pub const fn name(self) -> &'static str

The name of the counter in the report.

Trait Implementations§

Source§

impl Clone for PerfCounter

Source§

fn clone(&self) -> Self

Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§

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

Performs copy-assignment from source. Read more
Source§

impl Copy for PerfCounter

Source§

impl Debug for PerfCounter

Source§

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

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

impl Eq for PerfCounter

Source§

impl Hash for PerfCounter

Source§

fn hash<__H: Hasher>(&self, state: &mut __H)

Feeds this value into the given Hasher. Read more
1.3.0 · Source§

fn hash_slice<H>(data: &[Self], state: &mut H)
where H: Hasher, Self: Sized,

Feeds a slice of this type into the given Hasher. Read more
Source§

impl PartialEq for PerfCounter

Source§

fn eq(&self, other: &Self) -> bool

Equality operator ==. Read more
1.0.0 (const: unstable) · Source§

fn ne(&self, other: &Rhs) -> bool

Inequality operator !=. Read more
Source§

impl StructuralPartialEq for PerfCounter

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> AnyValue for T
where T: PartialEq + 'static,

Source§

fn any_value_as_any(&self) -> &(dyn Any + 'static)

Source§

fn any_value_eq(&self, other: &(dyn AnyValue + 'static)) -> bool

Source§

fn any_value_type_name(&self) -> &'static str

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> ClassDefaults for T
where T: ?Sized,

Source§

fn static_constructor()

The static constructor of a type: work done once per thread, after the properties of the type are registered and before its first instance exists (class handlers, affects_render, metadata overrides). 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, 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> PropertyValue for T
where T: Clone + PartialEq + 'static,

Source§

impl<T> ResourceKeyObject for T
where T: Eq + Hash + 'static,

Source§

fn as_any(&self) -> &(dyn Any + 'static)

Source§

fn dyn_eq(&self, other: &(dyn ResourceKeyObject + 'static)) -> bool

Source§

fn dyn_hash(&self, state: &mut dyn Hasher)

Source§

fn key_type_name(&self) -> &'static str

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 = !

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

fn try_from(value: U) -> Result<T, !>

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.