feat(nix-compat): add bench for aterm parsing
Change-Id: Ie9416f0046b6ee0a02096a7712cdba9cc84db4f6 Reviewed-on: https://cl.tvl.fyi/c/depot/+/9733 Reviewed-by: Connor Brewster <cbrewster@hey.com> Reviewed-by: Gabriel Doriath Döhler <gabriel.doriath.dohler@ens.fr> Tested-by: BuildkiteCI Autosubmit: flokli <flokli@flokli.de>
This commit is contained in:
parent
c3fad811f4
commit
652afd21b3
4 changed files with 43 additions and 1 deletions
1
tvix/Cargo.lock
generated
1
tvix/Cargo.lock
generated
|
@ -1430,6 +1430,7 @@ name = "nix-compat"
|
||||||
version = "0.1.0"
|
version = "0.1.0"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"bstr",
|
"bstr",
|
||||||
|
"criterion",
|
||||||
"data-encoding",
|
"data-encoding",
|
||||||
"futures",
|
"futures",
|
||||||
"futures-util",
|
"futures-util",
|
||||||
|
|
|
@ -1636,7 +1636,7 @@ rec {
|
||||||
"stable" = [ "csv_output" "html_reports" "async_futures" "async_smol" "async_tokio" "async_std" ];
|
"stable" = [ "csv_output" "html_reports" "async_futures" "async_smol" "async_tokio" "async_std" ];
|
||||||
"tokio" = [ "dep:tokio" ];
|
"tokio" = [ "dep:tokio" ];
|
||||||
};
|
};
|
||||||
resolvedDefaultFeatures = [ "cargo_bench_support" "default" "plotters" "rayon" ];
|
resolvedDefaultFeatures = [ "cargo_bench_support" "default" "html_reports" "plotters" "rayon" ];
|
||||||
};
|
};
|
||||||
"criterion-plot" = rec {
|
"criterion-plot" = rec {
|
||||||
crateName = "criterion-plot";
|
crateName = "criterion-plot";
|
||||||
|
@ -4230,6 +4230,11 @@ rec {
|
||||||
}
|
}
|
||||||
];
|
];
|
||||||
devDependencies = [
|
devDependencies = [
|
||||||
|
{
|
||||||
|
name = "criterion";
|
||||||
|
packageId = "criterion";
|
||||||
|
features = [ "html_reports" ];
|
||||||
|
}
|
||||||
{
|
{
|
||||||
name = "futures";
|
name = "futures";
|
||||||
packageId = "futures";
|
packageId = "futures";
|
||||||
|
|
|
@ -24,9 +24,14 @@ futures = { version = "0.3.28", default-features = false, features = ["executor"
|
||||||
lazy_static = "1.4.0"
|
lazy_static = "1.4.0"
|
||||||
serde_json = "1.0"
|
serde_json = "1.0"
|
||||||
test-case = "2.2.2"
|
test-case = "2.2.2"
|
||||||
|
criterion = { version = "0.4", features = ["html_reports"] }
|
||||||
|
|
||||||
[dev-dependencies.test-generator]
|
[dev-dependencies.test-generator]
|
||||||
# This fork of test-generator adds support for cargo workspaces, see
|
# This fork of test-generator adds support for cargo workspaces, see
|
||||||
# also https://github.com/frehberg/test-generator/pull/14
|
# also https://github.com/frehberg/test-generator/pull/14
|
||||||
git = "https://github.com/JamesGuthrie/test-generator.git"
|
git = "https://github.com/JamesGuthrie/test-generator.git"
|
||||||
rev = "82e799979980962aec1aa324ec6e0e4cad781f41"
|
rev = "82e799979980962aec1aa324ec6e0e4cad781f41"
|
||||||
|
|
||||||
|
[[bench]]
|
||||||
|
name = "derivation_parse_aterm"
|
||||||
|
harness = false
|
||||||
|
|
31
tvix/nix-compat/benches/derivation_parse_aterm.rs
Normal file
31
tvix/nix-compat/benches/derivation_parse_aterm.rs
Normal file
|
@ -0,0 +1,31 @@
|
||||||
|
use std::path::Path;
|
||||||
|
|
||||||
|
use criterion::{black_box, criterion_group, criterion_main, Criterion};
|
||||||
|
use nix_compat::derivation::Derivation;
|
||||||
|
|
||||||
|
const RESOURCES_PATHS: &str = "src/derivation/tests/derivation_tests/ok";
|
||||||
|
|
||||||
|
fn bench_aterm_parser(c: &mut Criterion) {
|
||||||
|
for drv in [
|
||||||
|
"0hm2f1psjpcwg8fijsmr4wwxrx59s092-bar.drv",
|
||||||
|
"292w8yzv5nn7nhdpxcs8b7vby2p27s09-nested-json.drv",
|
||||||
|
"4wvvbi4jwn0prsdxb7vs673qa5h9gr7x-foo.drv",
|
||||||
|
"52a9id8hx688hvlnz4d1n25ml1jdykz0-unicode.drv",
|
||||||
|
"9lj1lkjm2ag622mh4h9rpy6j607an8g2-structured-attrs.drv",
|
||||||
|
"ch49594n9avinrf8ip0aslidkc4lxkqv-foo.drv",
|
||||||
|
"h32dahq0bx5rp1krcdx3a53asj21jvhk-has-multi-out.drv",
|
||||||
|
"m1vfixn8iprlf0v9abmlrz7mjw1xj8kp-cp1252.drv",
|
||||||
|
"ss2p4wmxijn652haqyd7dckxwl4c7hxx-bar.drv",
|
||||||
|
"x6p0hg79i3wg0kkv7699935f7rrj9jf3-latin1.drv",
|
||||||
|
] {
|
||||||
|
let drv_path = Path::new(RESOURCES_PATHS).join(drv);
|
||||||
|
let drv_bytes = &std::fs::read(drv_path).unwrap();
|
||||||
|
|
||||||
|
c.bench_function(drv, |b| {
|
||||||
|
b.iter(|| Derivation::from_aterm_bytes(black_box(drv_bytes)))
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
criterion_group!(benches, bench_aterm_parser);
|
||||||
|
criterion_main!(benches);
|
Loading…
Reference in a new issue