From 12856d80fa88034c2d3e04cf073cb3d6d6f109da Mon Sep 17 00:00:00 2001 From: Pascal Seitz Date: Fri, 16 Sep 2022 15:42:59 +0800 Subject: [PATCH] change bench, update numbers --- fastfield_codecs/src/compact_space/mod.rs | 6 +++--- fastfield_codecs/src/lib.rs | 18 +++++++++++++++--- 2 files changed, 18 insertions(+), 6 deletions(-) diff --git a/fastfield_codecs/src/compact_space/mod.rs b/fastfield_codecs/src/compact_space/mod.rs index aea1933f6..cb5b83fb3 100644 --- a/fastfield_codecs/src/compact_space/mod.rs +++ b/fastfield_codecs/src/compact_space/mod.rs @@ -349,10 +349,10 @@ impl CompactSpaceDecompressor { self.params.compact_space.compact_to_u128(compact) } - /// Comparing on compact space: 1.08 GElements/s, which equals a throughput of 17,3 Gb/s - /// (based on u128 = 16byte) + /// Comparing on compact space: Random dataset 0,24 (50% random hit) - 1.05 GElements/s + /// Comparing on compact space: Real dataset 1.08 GElements/s /// - /// Comparing on original space: .06 GElements/s (not completely optimized) + /// Comparing on original space: Real dataset .06 GElements/s (not completely optimized) pub fn get_between_vals(&self, range: RangeInclusive) -> Vec { if range.start() > range.end() { return Vec::new(); diff --git a/fastfield_codecs/src/lib.rs b/fastfield_codecs/src/lib.rs index dc1e601fb..85fbb1558 100644 --- a/fastfield_codecs/src/lib.rs +++ b/fastfield_codecs/src/lib.rs @@ -394,15 +394,27 @@ mod bench { }); } + fn get_exp_data() -> Vec { + let mut data = vec![]; + for i in 0..100 { + let num = i * i; + data.extend(iter::repeat(i as u64).take(num)); + } + data.shuffle(&mut StdRng::from_seed([1u8; 32])); + + // lengt = 328350 + data + } + fn get_u128_column_permutation() -> Arc> { let permutation = generate_permutation(); let permutation = permutation.iter().map(|el| *el as u128).collect::>(); get_u128_column(&permutation) } fn get_data_50percent_item() -> (u128, u128, Vec) { - let mut permutation = generate_permutation(); - let major_item = permutation[0]; - let minor_item = permutation[1]; + let mut permutation = get_exp_data(); + let major_item = 20; + let minor_item = 10; permutation.extend(iter::repeat(major_item).take(permutation.len())); permutation.shuffle(&mut StdRng::from_seed([1u8; 32])); let permutation = permutation.iter().map(|el| *el as u128).collect::>();