pub struct BenchmarkSummary {Show 13 fields
pub version: String,
pub kind: BenchmarkKind,
pub summary_output: Option<SummaryOutput>,
pub project_root: PathBuf,
pub package_dir: PathBuf,
pub benchmark_file: PathBuf,
pub benchmark_exe: PathBuf,
pub function_name: String,
pub module_path: String,
pub id: Option<String>,
pub details: Option<String>,
pub callgrind_summary: Option<CallgrindSummary>,
pub tool_summaries: Vec<ToolSummary>,
}
runner
only.Expand description
The BenchmarkSummary
containing all the information of a single benchmark run
This includes produced files, recorded callgrind events, performance regressions …
Fields§
§version: String
The version of this format. Only backwards incompatible changes cause an increase of the version
kind: BenchmarkKind
Whether this summary describes a library or binary benchmark
summary_output: Option<SummaryOutput>
The destination and kind of the summary file
project_root: PathBuf
The project’s root directory
package_dir: PathBuf
The directory of the package
benchmark_file: PathBuf
The path to the benchmark file
benchmark_exe: PathBuf
The path to the binary which is executed by valgrind. In case of a library benchmark this is the compiled benchmark file. In case of a binary benchmark this is the path to the command.
function_name: String
The name of the function under test
module_path: String
The rust path in the form bench_file::group::bench
id: Option<String>
The user provided id of this benchmark
details: Option<String>
More details describing this benchmark run
callgrind_summary: Option<CallgrindSummary>
The summary of the callgrind run
tool_summaries: Vec<ToolSummary>
The summary of other valgrind tool runs
Implementations§
source§impl BenchmarkSummary
impl BenchmarkSummary
sourcepub fn new(
kind: BenchmarkKind,
project_root: PathBuf,
package_dir: PathBuf,
benchmark_file: PathBuf,
benchmark_exe: PathBuf,
module_path: &ModulePath,
function_name: &str,
id: Option<String>,
details: Option<String>,
output: Option<SummaryOutput>,
) -> Self
pub fn new( kind: BenchmarkKind, project_root: PathBuf, package_dir: PathBuf, benchmark_file: PathBuf, benchmark_exe: PathBuf, module_path: &ModulePath, function_name: &str, id: Option<String>, details: Option<String>, output: Option<SummaryOutput>, ) -> Self
Create a new BenchmarkSummary
Relative paths are made absolute with the project_root
as base directory.
pub fn print_and_save(&self, output_format: &OutputFormatKind) -> Result<()>
sourcepub fn check_regression(
&self,
is_regressed: &mut bool,
fail_fast: bool,
) -> Result<()>
pub fn check_regression( &self, is_regressed: &mut bool, fail_fast: bool, ) -> Result<()>
Check if this BenchmarkSummary
has recorded any performance regressions
If the regressions are configured to be not fail_fast
and there is a regressions, then the
is_regressed
variable is updated to true.
§Errors
If the regressions are configured to be fail_fast
an error is returned
pub fn compare_and_print( &self, id: &str, other: &Self, output_format: &OutputFormat, ) -> Result<()>
Trait Implementations§
source§impl Debug for BenchmarkSummary
impl Debug for BenchmarkSummary
source§impl<'de> Deserialize<'de> for BenchmarkSummary
impl<'de> Deserialize<'de> for BenchmarkSummary
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 JsonSchema for BenchmarkSummary
impl JsonSchema for BenchmarkSummary
source§fn schema_name() -> String
fn schema_name() -> String
source§fn schema_id() -> Cow<'static, str>
fn schema_id() -> Cow<'static, str>
source§fn json_schema(gen: &mut SchemaGenerator) -> Schema
fn json_schema(gen: &mut SchemaGenerator) -> Schema
source§fn is_referenceable() -> bool
fn is_referenceable() -> bool
$ref
keyword. Read moresource§impl PartialEq for BenchmarkSummary
impl PartialEq for BenchmarkSummary
source§impl Serialize for BenchmarkSummary
impl Serialize for BenchmarkSummary
impl StructuralPartialEq for BenchmarkSummary
Auto Trait Implementations§
impl Freeze for BenchmarkSummary
impl RefUnwindSafe for BenchmarkSummary
impl Send for BenchmarkSummary
impl Sync for BenchmarkSummary
impl Unpin for BenchmarkSummary
impl UnwindSafe for BenchmarkSummary
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> 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