mirror of
https://github.com/catchorg/Catch2.git
synced 2024-11-26 07:16:10 +01:00
Move name and sample analysis in benchmarks into BenchmarkStats
This always saves 1 allocation per benchmark, and another two allocations if the benchmark name is longer than the SSO buffer.
This commit is contained in:
parent
e5d1eb757f
commit
356dfc1439
@ -64,7 +64,7 @@ namespace Catch {
|
|||||||
});
|
});
|
||||||
|
|
||||||
BenchmarkInfo info {
|
BenchmarkInfo info {
|
||||||
name,
|
CATCH_MOVE(name),
|
||||||
plan.estimated_duration.count(),
|
plan.estimated_duration.count(),
|
||||||
plan.iterations_per_sample,
|
plan.iterations_per_sample,
|
||||||
cfg->benchmarkSamples(),
|
cfg->benchmarkSamples(),
|
||||||
@ -80,7 +80,7 @@ namespace Catch {
|
|||||||
});
|
});
|
||||||
|
|
||||||
auto analysis = Detail::analyse(*cfg, env, samples.begin(), samples.end());
|
auto analysis = Detail::analyse(*cfg, env, samples.begin(), samples.end());
|
||||||
BenchmarkStats<FloatDuration<Clock>> stats{ info, analysis.samples, analysis.mean, analysis.standard_deviation, analysis.outliers, analysis.outlier_variance };
|
BenchmarkStats<FloatDuration<Clock>> stats{ CATCH_MOVE(info), CATCH_MOVE(analysis.samples), analysis.mean, analysis.standard_deviation, analysis.outliers, analysis.outlier_variance };
|
||||||
getResultCapture().benchmarkEnded(stats);
|
getResultCapture().benchmarkEnded(stats);
|
||||||
} CATCH_CATCH_ANON (TestFailureException) {
|
} CATCH_CATCH_ANON (TestFailureException) {
|
||||||
getResultCapture().benchmarkFailed("Benchmark failed due to failed assertion"_sr);
|
getResultCapture().benchmarkFailed("Benchmark failed due to failed assertion"_sr);
|
||||||
|
Loading…
Reference in New Issue
Block a user