pub enum EventKind {
Show 37 variants
Ir,
Dr,
Dw,
I1mr,
D1mr,
D1mw,
ILmr,
DLmr,
DLmw,
I1MissRate,
LLiMissRate,
D1MissRate,
LLdMissRate,
LLMissRate,
L1hits,
LLhits,
RamHits,
L1HitRate,
LLHitRate,
RamHitRate,
TotalRW,
EstimatedCycles,
SysCount,
SysTime,
SysCpuTime,
Ge,
Bc,
Bcm,
Bi,
Bim,
ILdmr,
DLdmr,
DLdmw,
AcCost1,
AcCost2,
SpLoss1,
SpLoss2,
}
api
only.Expand description
All EventKind
s callgrind produces and additionally some derived events
Depending on the options passed to Callgrind, these are the events that Callgrind can produce. See the Callgrind documentation for details.
Variants§
Ir
The default event. I cache reads (which equals the number of instructions executed)
Dr
D Cache reads (which equals the number of memory reads) (–cache-sim=yes)
Dw
D Cache writes (which equals the number of memory writes) (–cache-sim=yes)
I1mr
I1 cache read misses (–cache-sim=yes)
D1mr
D1 cache read misses (–cache-sim=yes)
D1mw
D1 cache write misses (–cache-sim=yes)
ILmr
LL cache instruction read misses (–cache-sim=yes)
DLmr
LL cache data read misses (–cache-sim=yes)
DLmw
LL cache data write misses (–cache-sim=yes)
I1MissRate
I1 cache miss rate (–cache-sim=yes)
LLiMissRate
LL/L2 instructions cache miss rate (–cache-sim=yes)
D1MissRate
D1 cache miss rate (–cache-sim=yes)
LLdMissRate
LL/L2 data cache miss rate (–cache-sim=yes)
LLMissRate
LL/L2 cache miss rate (–cache-sim=yes)
L1hits
Derived event showing the L1 hits (–cache-sim=yes)
LLhits
Derived event showing the LL hits (–cache-sim=yes)
RamHits
Derived event showing the RAM hits (–cache-sim=yes)
L1HitRate
L1 cache hit rate (–cache-sim=yes)
LLHitRate
LL/L2 cache hit rate (–cache-sim=yes)
RamHitRate
RAM hit rate (–cache-sim=yes)
TotalRW
Derived event showing the total amount of cache reads and writes (–cache-sim=yes)
EstimatedCycles
Derived event showing estimated CPU cycles (–cache-sim=yes)
SysCount
The number of system calls done (–collect-systime=yes)
SysTime
The elapsed time spent in system calls (–collect-systime=yes)
SysCpuTime
The cpu time spent during system calls (–collect-systime=nsec)
Ge
The number of global bus events (–collect-bus=yes)
Bc
Conditional branches executed (–branch-sim=yes)
Bcm
Conditional branches mispredicted (–branch-sim=yes)
Bi
Indirect branches executed (–branch-sim=yes)
Bim
Indirect branches mispredicted (–branch-sim=yes)
ILdmr
Dirty miss because of instruction read (–simulate-wb=yes)
DLdmr
Dirty miss because of data read (–simulate-wb=yes)
DLdmw
Dirty miss because of data write (–simulate-wb=yes)
AcCost1
Counter showing bad temporal locality for L1 caches (–cachuse=yes)
AcCost2
Counter showing bad temporal locality for LL caches (–cachuse=yes)
SpLoss1
Counter showing bad spatial locality for L1 caches (–cachuse=yes)
SpLoss2
Counter showing bad spatial locality for LL caches (–cachuse=yes)
Implementations§
Source§impl EventKind
impl EventKind
Sourcepub fn is_derived(&self) -> bool
pub fn is_derived(&self) -> bool
Return true if this EventKind
is a derived event
Derived events are calculated from Callgrind’s native event types. See also
crate::runner::callgrind::model::Metrics::make_summary
. Currently all derived events
are:
Trait Implementations§
Source§impl<'de> Deserialize<'de> for EventKind
impl<'de> Deserialize<'de> for EventKind
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>,
Source§impl From<CachegrindMetric> for EventKind
impl From<CachegrindMetric> for EventKind
Source§fn from(value: CachegrindMetric) -> Self
fn from(value: CachegrindMetric) -> Self
Source§impl From<EventKind> for CallgrindMetrics
impl From<EventKind> for CallgrindMetrics
Source§impl IntoEnumIterator for EventKind
impl IntoEnumIterator for EventKind
type Iterator = EventKindIter
fn iter() -> EventKindIter ⓘ
Source§impl JsonSchema for EventKind
impl JsonSchema for EventKind
Source§fn schema_id() -> Cow<'static, str>
fn schema_id() -> Cow<'static, str>
Source§fn json_schema(generator: &mut SchemaGenerator) -> Schema
fn json_schema(generator: &mut SchemaGenerator) -> Schema
Source§fn inline_schema() -> bool
fn inline_schema() -> bool
$ref
keyword. Read moreSource§impl Ord for EventKind
impl Ord for EventKind
Source§impl PartialOrd for EventKind
impl PartialOrd for EventKind
Source§impl RegressionConfig<EventKind> for CallgrindRegressionConfig
Available on crate feature runner
only.
impl RegressionConfig<EventKind> for CallgrindRegressionConfig
runner
only.Source§fn check(&self, metrics_summary: &MetricsSummary) -> Vec<ToolRegression>
fn check(&self, metrics_summary: &MetricsSummary) -> Vec<ToolRegression>
Check the MetricsSummary
for regressions.
The limits for event kinds which are not present in the MetricsSummary
are ignored.
Source§fn get_soft_limits(&self) -> &[(EventKind, f64)]
fn get_soft_limits(&self) -> &[(EventKind, f64)]
Source§fn get_hard_limits(&self) -> &[(EventKind, Metric)]
fn get_hard_limits(&self) -> &[(EventKind, Metric)]
Source§fn check_and_print(
&self,
metrics_summary: &MetricsSummary<T>,
) -> Vec<ToolRegression>
fn check_and_print( &self, metrics_summary: &MetricsSummary<T>, ) -> Vec<ToolRegression>
Source§fn check_regressions(
&self,
metrics_summary: &MetricsSummary<T>,
) -> Vec<RegressionMetrics<T>>
fn check_regressions( &self, metrics_summary: &MetricsSummary<T>, ) -> Vec<RegressionMetrics<T>>
RegressionMetrics
Source§impl TypeChecker for EventKind
Available on crate feature runner
only.
impl TypeChecker for EventKind
runner
only.Source§fn is_int(&self) -> bool
fn is_int(&self) -> bool
Metric::Int
Source§fn is_float(&self) -> bool
fn is_float(&self) -> bool
Metric::Float
Source§fn verify_metric(&self, metric: Metric) -> bool
fn verify_metric(&self, metric: Metric) -> bool
Metric
has the expected metric typeimpl Copy for EventKind
impl Eq for EventKind
impl StructuralPartialEq for EventKind
Auto Trait Implementations§
impl Freeze for EventKind
impl RefUnwindSafe for EventKind
impl Send for EventKind
impl Sync for EventKind
impl Unpin for EventKind
impl UnwindSafe for EventKind
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
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<Q, K> Comparable<K> for Q
impl<Q, K> Comparable<K> for Q
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
key
and return true
if they are equal.Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
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>
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>
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