Where is Criterion's output, or how do I enable it?
Asked Answered
B

1

7

The Criterion benchmarking library for Rust is documented as generating plots describing the benchmark results:

Criterion.rs can generate a number of useful charts and graphs which you can check to get a better understanding of the behavior of the benchmark.

The plots and saved data are stored under target/criterion/$BENCHMARK_NAME/.

However, after running cargo bench and seeing Criterion's output on the terminal, I don't see a directory named target/criterion/. Where is the output now, or what do I have to do to activate it?

Blancheblanchette answered 21/1, 2021 at 16:7 Comment(0)
B
5

This was a small bug (criterion issue #192): when Criterion is used in a Cargo workspace, it doesn't find the workspace's target directory, and ends up writing its results to <individual crate directory>/target/criterion instead.

The Cargo extension cargo-criterion was supposed to work around this but unfortunately for my particular case, currently didn't work on macOS (cargo-criterion issue #12).

Both issues has been fixed; since version 0.3.4 criterion writes its output to the correct directory, and cargo-criterion also works on macOS.

Blancheblanchette answered 21/1, 2021 at 16:7 Comment(2)
Is there anything I have to configure or pass to cargo bench to activate HTML reports / plot output? I'm using version 0.4.0 and I'm getting no HTML reports whatsoever using cargo workspace as well. To clarify, target/criterion contains some json files, but no html/png/svg files at all.Furst
I looks like it is now disabled by default and hidden behind a feature flag (criterion = { version = "0.4", features = ["html_reports"] }), which apparently now gets reported frequently as an issue, because the documentation and user guide still suggest otherwise.Furst

© 2022 - 2024 — McMap. All rights reserved.