#[non_exhaustive]pub enum CachegrindMetrics {
Default,
CacheMisses,
CacheMissRates,
CacheHits,
CacheHitRates,
CacheSim,
BranchSim,
All,
None,
SingleEvent(CachegrindMetric),
}
default
only.Variants (Non-exhaustive)§
This enum is marked as non-exhaustive
Default
The default group contains all metrics except the CachegrindMetrics::CacheMisses
,
CachegrindMetrics::CacheMissRates
, CachegrindMetrics::CacheHitRates
and
EventKind::Dr
, EventKind::Dw
. More specifically, the following event kinds and
groups in this order:
use iai_callgrind::{CachegrindMetric, CachegrindMetrics};
let metrics: Vec<CachegrindMetrics> = vec![
CachegrindMetric::Ir.into(),
CachegrindMetrics::CacheHits,
CachegrindMetric::TotalRW.into(),
CachegrindMetric::EstimatedCycles.into(),
CachegrindMetrics::BranchSim,
];
CacheMisses
The CacheMisses
produced by --cache-sim=yes
contain the following CachegrindMetric
s
in this order:
use iai_callgrind::{CachegrindMetric, CachegrindMetrics};
let metrics: Vec<CachegrindMetrics> = vec![
CachegrindMetric::I1mr.into(),
CachegrindMetric::D1mr.into(),
CachegrindMetric::D1mw.into(),
CachegrindMetric::ILmr.into(),
CachegrindMetric::DLmr.into(),
CachegrindMetric::DLmw.into(),
];
CacheMissRates
The cache miss rates calculated from the CallgrindMetrics::CacheMisses
produced by
--cache-sim
:
use iai_callgrind::{CachegrindMetric, CachegrindMetrics};
let metrics: Vec<CachegrindMetrics> = vec![
CachegrindMetric::I1MissRate.into(),
CachegrindMetric::LLiMissRate.into(),
CachegrindMetric::D1MissRate.into(),
CachegrindMetric::LLdMissRate.into(),
CachegrindMetric::LLMissRate.into(),
];
CacheHits
CacheHits
are iai-callgrind specific and calculated from the metrics produced by
--cache-sim=yes
in this order:
use iai_callgrind::{CachegrindMetric, CachegrindMetrics};
let metrics: Vec<CachegrindMetrics> = vec![
CachegrindMetric::L1hits.into(),
CachegrindMetric::LLhits.into(),
CachegrindMetric::RamHits.into(),
];
CacheHitRates
The cache hit rates calculated from the CachegrindMetrics::CacheHits
:
use iai_callgrind::{CachegrindMetric, CachegrindMetrics};
let metrics: Vec<CachegrindMetrics> = vec![
CachegrindMetric::L1HitRate.into(),
CachegrindMetric::LLHitRate.into(),
CachegrindMetric::RamHitRate.into(),
];
CacheSim
All metrics produced by --cache-sim=yes
including the iai-callgrind specific metrics
CachegrindMetric::L1hits
, CachegrindMetric::LLhits
, CachegrindMetric::RamHits
,
CachegrindMetric::TotalRW
, CachegrindMetric::EstimatedCycles
,
CachegrindMetrics::CacheMissRates
and CachegrindMetrics::CacheHitRates
in this
order:
use iai_callgrind::{CachegrindMetric, CachegrindMetrics};
let metrics: Vec<CachegrindMetrics> = vec![
CachegrindMetric::Dr.into(),
CachegrindMetric::Dw.into(),
CachegrindMetrics::CacheMisses,
CachegrindMetrics::CacheMissRates,
CachegrindMetrics::CacheHits,
CachegrindMetrics::CacheHitRates,
CachegrindMetric::TotalRW.into(),
CachegrindMetric::EstimatedCycles.into(),
];
BranchSim
The metrics produced by --branch-sim=yes
in this order:
use iai_callgrind::{CachegrindMetric, CachegrindMetrics};
let metrics: Vec<CachegrindMetrics> = vec![
CachegrindMetric::Bc.into(),
CachegrindMetric::Bcm.into(),
CachegrindMetric::Bi.into(),
CachegrindMetric::Bim.into(),
];
All
All possible CachegrindMetric
s in this order:
use iai_callgrind::{CachegrindMetric, CachegrindMetrics};
let metrics: Vec<CachegrindMetrics> = vec![
CachegrindMetric::Ir.into(),
CachegrindMetrics::CacheSim,
CachegrindMetrics::BranchSim,
];
None
Selection of no CachegrindMetric
at all
SingleEvent(CachegrindMetric)
Specify a single CachegrindMetric
.
Note that CachegrindMetric
implements the necessary traits to convert to the
CachegrindMetrics::SingleEvent
variant.
§Examples
use iai_callgrind::{CachegrindMetric, CachegrindMetrics};
assert_eq!(
CachegrindMetrics::SingleEvent(CachegrindMetric::Ir),
CachegrindMetric::Ir.into()
);
Trait Implementations§
Source§impl Clone for CachegrindMetrics
impl Clone for CachegrindMetrics
Source§fn clone(&self) -> CachegrindMetrics
fn clone(&self) -> CachegrindMetrics
1.0.0 · Source§const fn clone_from(&mut self, source: &Self)
const fn clone_from(&mut self, source: &Self)
source
. Read more