From 76a2343639b5f49abeef653ed238680ea4ee20dd Mon Sep 17 00:00:00 2001 From: Kerollmops Date: Thu, 3 Jun 2021 15:39:52 +0200 Subject: [PATCH 1/2] Fix the compare script of the benchmarks --- benchmarks/scripts/compare.sh | 48 +++++++++++++++-------------------- 1 file changed, 20 insertions(+), 28 deletions(-) diff --git a/benchmarks/scripts/compare.sh b/benchmarks/scripts/compare.sh index 067772bec..506c94015 100755 --- a/benchmarks/scripts/compare.sh +++ b/benchmarks/scripts/compare.sh @@ -11,9 +11,9 @@ # Checking that critcmp is installed command -v critcmp > /dev/null 2>&1 if [[ "$?" -ne 0 ]]; then - echo 'You must install critcmp to make this script working.' - echo '$ cargo install critcmp' + echo 'You must install critcmp to make this script work.' echo 'See: https://github.com/BurntSushi/critcmp' + echo ' $ cargo install critcmp' exit 1 fi @@ -21,38 +21,30 @@ if [[ $# -ne 2 ]] then echo 'Need 2 arguments.' echo 'Usage: ' - echo ' $ ./compare.sh file_to_download1 file_to_download2' + echo ' $ ./compare.sh old new' echo 'Ex:' echo ' $ ./compare.sh songs_main_09a4321.json songs_geosearch_24ec456.json' exit 1 fi -file1="$1" -file2="$2" +old_file="$1" +new_file="$2" s3_url='https://milli-benchmarks.fra1.digitaloceanspaces.com/critcmp_results' -file1_s3_url="$s3_url/$file1" -file2_s3_url="$s3_url/$file2" -file1_local_path="/tmp/$file1" -file2_local_path="/tmp/$file2" -if [[ ! -f "$file1_local_path" ]]; then - curl "$file1_s3_url" -O "$file1_local_path" - if [[ "$?" -ne 0 ]]; then - echo 'curl command failed.' - exit 1 +for file in $old_file $new_file +do + file_s3_url="$s3_url/$file" + file_local_path="/tmp/$file" + + if [[ ! -f $file_local_path ]]; then + curl $file_s3_url --output $file_local_path --silent + if [[ "$?" -ne 0 ]]; then + echo 'curl command failed.' + exit 1 + fi fi -else - echo "$file1 already present in /tmp, no need to download." -fi +done -if [[ ! -f "$file2_local_path" ]]; then - curl "$file2_s3_url" -O "$file2_local_path" - if [[ "$?" -ne 0 ]]; then - echo 'curl command failed.' - exit 1 - fi -else - echo "$file2 already present in /tmp, no need to download." -fi - -critcmp --color always "$file1_local_path" "$file2_local_path" +# Print the diff changes between the old and new benchmarks +# by only displaying the lines that have a diff of more than 5%. +critcmp --threshold 5 "/tmp/$old_file" "/tmp/$new_file" From 29824d05ab0a7db8f72ee984b2d22bb2c5bfb807 Mon Sep 17 00:00:00 2001 From: Kerollmops Date: Thu, 3 Jun 2021 15:59:43 +0200 Subject: [PATCH 2/2] Reduce the length of the benchmarks names --- Cargo.lock | 10 +++++----- benchmarks/Cargo.toml | 2 +- benchmarks/benches/utils.rs | 8 +++++--- 3 files changed, 11 insertions(+), 9 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 04fd284c6..575f582bc 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -900,7 +900,7 @@ dependencies = [ [[package]] name = "helpers" -version = "0.2.1" +version = "0.3.0" dependencies = [ "anyhow", "byte-unit", @@ -954,7 +954,7 @@ dependencies = [ [[package]] name = "http-ui" -version = "0.2.1" +version = "0.3.0" dependencies = [ "anyhow", "askama", @@ -1095,7 +1095,7 @@ dependencies = [ [[package]] name = "infos" -version = "0.2.1" +version = "0.3.0" dependencies = [ "anyhow", "byte-unit", @@ -1358,7 +1358,7 @@ dependencies = [ [[package]] name = "milli" -version = "0.2.1" +version = "0.3.0" dependencies = [ "anyhow", "big_s", @@ -2215,7 +2215,7 @@ dependencies = [ [[package]] name = "search" -version = "0.2.1" +version = "0.3.0" dependencies = [ "anyhow", "byte-unit", diff --git a/benchmarks/Cargo.toml b/benchmarks/Cargo.toml index 6be9c79d1..ed366022c 100644 --- a/benchmarks/Cargo.toml +++ b/benchmarks/Cargo.toml @@ -10,7 +10,7 @@ milli = { path = "../milli" } [dev-dependencies] heed = "*" # we want to use the version milli uses -criterion = "0.3.4" +criterion = { version = "0.3.4", features = ["html_reports"] } [build-dependencies] anyhow = "1.0" diff --git a/benchmarks/benches/utils.rs b/benchmarks/benches/utils.rs index be66d7f84..5138de4d2 100644 --- a/benchmarks/benches/utils.rs +++ b/benchmarks/benches/utils.rs @@ -1,4 +1,5 @@ use std::fs::{create_dir_all, remove_dir_all, File}; +use std::path::Path; use criterion::BenchmarkId; use heed::EnvOpenOptions; @@ -97,7 +98,9 @@ pub fn run_benches(c: &mut criterion::Criterion, confs: &[Conf]) { for conf in confs { let index = base_setup(conf); - let mut group = c.benchmark_group(&format!("{}: {}", conf.dataset, conf.group_name)); + let file_name = Path::new(conf.dataset).file_name().and_then(|f| f.to_str()).unwrap(); + let name = format!("{}: {}", file_name, conf.group_name); + let mut group = c.benchmark_group(&name); for &query in conf.queries { group.bench_with_input(BenchmarkId::from_parameter(query), &query, |b, &query| { @@ -106,8 +109,7 @@ pub fn run_benches(c: &mut criterion::Criterion, confs: &[Conf]) { let mut search = index.search(&rtxn); search.query(query).optional_words(conf.optional_words); if let Some(filter) = conf.filter { - let filter = - FilterCondition::from_str(&rtxn, &index, filter).unwrap(); + let filter = FilterCondition::from_str(&rtxn, &index, filter).unwrap(); search.filter(filter); } let _ids = search.execute().unwrap();