From 1cc17e00277aedcb2e82ae14a28439b41dd52ff1 Mon Sep 17 00:00:00 2001 From: Josh Stone Date: Mon, 25 Apr 2022 16:33:08 -0700 Subject: [PATCH] Add benchmarks of key sorting --- rayon-demo/src/sort.rs | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/rayon-demo/src/sort.rs b/rayon-demo/src/sort.rs index baad4d8b4..4ed6923df 100644 --- a/rayon-demo/src/sort.rs +++ b/rayon-demo/src/sort.rs @@ -79,6 +79,17 @@ macro_rules! sort { }; } +macro_rules! sort_keys { + ($f:ident, $name:ident, $gen:expr, $len:expr) => { + #[bench] + fn $name(b: &mut Bencher) { + let v = $gen($len); + b.iter(|| v.clone().$f(ToString::to_string)); + b.bytes = $len * mem::size_of_val(&$gen(1)[0]) as u64; + } + }; +} + macro_rules! sort_strings { ($f:ident, $name:ident, $gen:expr, $len:expr) => { #[bench] @@ -136,6 +147,8 @@ sort!(par_sort, par_sort_random, gen_random, 50_000); sort!(par_sort, par_sort_big, gen_big_random, 50_000); sort_strings!(par_sort, par_sort_strings, gen_strings, 50_000); sort_expensive!(par_sort_by, par_sort_expensive, gen_random, 50_000); +sort_keys!(par_sort_by_key, par_sort_by_key, gen_random, 50_000); +sort_keys!(par_sort_by_cached_key, par_sort_by_cached_key, gen_random, 50_000); sort!( par_sort_unstable, @@ -185,6 +198,12 @@ sort_expensive!( gen_random, 50_000 ); +sort_keys!( + par_sort_unstable_by_key, + par_sort_unstable_by_key, + gen_random, + 50_000 +); trait MergeSort { fn demo_merge_sort(&mut self);