#[non_exhaustive]pub enum CachegrindMetrics {
Default,
CacheMisses,
CacheMissRates,
CacheHits,
CacheHitRates,
CacheSim,
BranchSim,
All,
None,
SingleEvent(CachegrindMetric),
}default only.Expand description
A collection of groups of CachegrindMetrics
The members of each group are fully documented in the docs of each variant of this enum
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 CachegrindMetrics
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 CachegrindMetrics 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§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read more