pub(crate) struct Row<'a> {Show 13 fields
pub(crate) name: &'static str,
pub(crate) backend: Backend,
pub(crate) module: &'a str,
pub(crate) entry: &'a str,
pub(crate) allow: Vec<String>,
pub(crate) ir: Option<&'a Arc<Program>>,
pub(crate) wall_ns: Vec<u64>,
pub(crate) heap_peak: Vec<u64>,
pub(crate) fuel_spent: u64,
pub(crate) host_calls: u64,
pub(crate) irreversible_writes: u64,
pub(crate) instructions: Option<u64>,
pub(crate) ok: bool,
}Expand description
One benchmark on one backend, and the samples taken of it so far.
The series is a field rather than a local of the loop that fills it
because SampleOrder::RoundRobin leaves and comes back: a row is opened
once, sampled at whatever points in the suite the order says, and read
only when every row is finished.
Fields§
§name: &'static str§backend: Backend§module: &'a str§entry: &'a str§allow: Vec<String>§ir: Option<&'a Arc<Program>>The linear-memory program this row runs, on a vm row and nowhere
else. Lowered per entry, because that is what cove_ir lowers.
wall_ns: Vec<u64>§heap_peak: Vec<u64>§fuel_spent: u64§host_calls: u64§irreversible_writes: u64§instructions: Option<u64>§ok: boolImplementations§
Source§impl<'a> Row<'a>
impl<'a> Row<'a>
Sourcepub(crate) fn resolve(
package: &'a Package,
program: &Program,
name: &'static str,
backend: Backend,
ir: Option<&'a Arc<Program>>,
) -> Result<Row<'a>, String>
pub(crate) fn resolve( package: &'a Package, program: &Program, name: &'static str, backend: Backend, ir: Option<&'a Arc<Program>>, ) -> Result<Row<'a>, String>
Looks the benchmark’s entry up, without running anything.
Sourcepub(crate) fn sample(
&mut self,
program: &Arc<Program>,
sources: &Arc<SourceMap>,
)
pub(crate) fn sample( &mut self, program: &Arc<Program>, sources: &Arc<SourceMap>, )
Runs the benchmark once more and keeps what that run measured.
The counters are assignments rather than accumulations because they
are exact and every run produces the same ones: a benchmark that ran a
different number of instructions on its ninth sample than on its first
would be a different benchmark, and that is what fuel_spent being
identical across a table is there to prove.
Sourcepub(crate) fn report(&self, iterations: u32) -> ExecutionReport
pub(crate) fn report(&self, iterations: u32) -> ExecutionReport
What the row measured, once every sample of it has been taken.