Added new plotting backend using the plotters crate. Implementation generously provided by Hao
Hou, author of the plotters crate.
Added --plotting-backend command-line option to select the plotting backend. The existing
gnuplot backend will be used by default when available, and the plotters backend will be used when
gnuplot is not available or when requested.
Added Criterion::plotting_backend() function to configure the plotting backend in code.
Added --load-baseline command-line option to load a baseline for comparison
rather than measuring the current code
Benchmark filters can now be regular expressions.
Fixed
Fixed fibonacci functions.
Fixed #[criterion] benchmarks ignoring the command-line options.
Fixed incorrect scaling of the violin plots.
Don't print the recommended sample count if it's the same as the configured
sample count.
Fix potential panic when nresamples is set too low. Also added a warning
against setting nresamples too low.
Fixed issue where a slow outer closure would cause Criterion.rs to calculate
the wrong estimated time and number of iterations in the warm-up phase.
[0.3.0] - 2019-08-25
Added
Added support for plugging in custom measurements (eg. processor counters)
into Criterion.rs' measurement and analysis.
Added support for plugging in instrumentation for internal profilers such as
cpuprofiler which must be explicitly started and stopped within the profiled
process.
Added the BenchmarkGroup type, which supersedes ParameterizedBenchmark, Benchmark,
Criterion::bench_functions, Criterion::bench_function_over_inputs, and Criterion::bench.
BenchmarkGroup performs the same function as all of the above, but is cleaner to use and more
powerful and flexible. All of these types/functions are now soft-deprecated (meaning they're
hidden from the documentation and should not be used in new code). They will be fully deprecated
at some point in the 0.3.* series and removed in 0.4.0.
iter_custom - a "timing loop" that allows the caller to perform their own measurements. This is
useful for complex measurements that don't fit into the usual mode of calling a lambda in a loop.
If the benchmark cannot be completed in approximately the requested measurement time,
Criterion.rs will now print a suggested measurement time and sample size that would work.
Two new fields, throughput_num and throughput_type have been added to the raw.csv file.
Added command-line options to set the defaults for warm-up time, measurement-time, etc.
Changed
The raw.csv file format has been changed slightly. The sample_time_nanos field has been split
into sample_measured_value and unit fields to accommodate custom measurements.
Throughput has been expanded from u32 to u64 to accommodate very large input sizes.
Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.
Note: This repo was added to Dependabot recently, so you'll receive a maximum of 5 PRs for your first few update runs. Once an update run creates fewer than 5 PRs we'll remove that limit.
You can always request more updates by clicking Bump now in your Dependabot dashboard.
Dependabot commands and options
You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
- `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
- `@dependabot use these labels` will set the current labels as the default for future PRs for this repo and language
- `@dependabot use these reviewers` will set the current reviewers as the default for future PRs for this repo and language
- `@dependabot use these assignees` will set the current assignees as the default for future PRs for this repo and language
- `@dependabot use this milestone` will set the current milestone as the default for future PRs for this repo and language
- `@dependabot badge me` will comment on this PR with code to add a "Dependabot enabled" badge to your readme
Additionally, you can set the following in your Dependabot [dashboard](https://app.dependabot.com):
- Update frequency (including time of day and day of week)
- Pull request limits (per update run and/or open at any time)
- Out-of-range updates (receive only lockfile updates, if desired)
- Security updates (receive only security updates, if desired)
Updates the requirements on criterion to permit the latest version.
Changelog
Sourced from criterion's changelog.
Commits
bcb4d41
Update version numbersf1eb301
Update dependencies.aa6f686
Fix build on 1.3376061c7
Measure the elapsed time for the warm-up phase inside the bencher loop.c436335
Fix clippy warnings99de909
Add regex-matching to benchmark ID filters.5226be4
Add --load-baseline to changelog and user guide.86308cb
Don't save the measurements when running in --load-baseline mode8b74dac
Merge pull request #368 from HeroicKatora/master72a27c4
Fix test.Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting
@dependabot rebase
.Note: This repo was added to Dependabot recently, so you'll receive a maximum of 5 PRs for your first few update runs. Once an update run creates fewer than 5 PRs we'll remove that limit.
You can always request more updates by clicking
Bump now
in your Dependabot dashboard.Dependabot commands and options
You can trigger Dependabot actions by commenting on this PR: - `@dependabot rebase` will rebase this PR - `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it - `@dependabot merge` will merge this PR after your CI passes on it - `@dependabot squash and merge` will squash and merge this PR after your CI passes on it - `@dependabot cancel merge` will cancel a previously requested merge and block automerging - `@dependabot reopen` will reopen this PR if it is closed - `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually - `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself) - `@dependabot use these labels` will set the current labels as the default for future PRs for this repo and language - `@dependabot use these reviewers` will set the current reviewers as the default for future PRs for this repo and language - `@dependabot use these assignees` will set the current assignees as the default for future PRs for this repo and language - `@dependabot use this milestone` will set the current milestone as the default for future PRs for this repo and language - `@dependabot badge me` will comment on this PR with code to add a "Dependabot enabled" badge to your readme Additionally, you can set the following in your Dependabot [dashboard](https://app.dependabot.com): - Update frequency (including time of day and day of week) - Pull request limits (per update run and/or open at any time) - Out-of-range updates (receive only lockfile updates, if desired) - Security updates (receive only security updates, if desired)