Skip to content

Commit

Permalink
add block encoding bench
Browse files Browse the repository at this point in the history
  • Loading branch information
marvin-j97 committed Oct 1, 2024
1 parent eff99ea commit acbac6b
Showing 1 changed file with 51 additions and 4 deletions.
55 changes: 51 additions & 4 deletions benches/block.rs
Original file line number Diff line number Diff line change
Expand Up @@ -99,8 +99,8 @@ fn value_block_find(c: &mut Criterion) {
}
}

fn load_value_block_from_disk(c: &mut Criterion) {
let mut group = c.benchmark_group("Load block from disk");
fn encode_block(c: &mut Criterion) {
let mut group = c.benchmark_group("Encode block");

for comp_type in [
CompressionType::None,
Expand Down Expand Up @@ -131,9 +131,51 @@ fn load_value_block_from_disk(c: &mut Criterion) {
}
}

group.bench_function(format!("{block_size} KiB [{comp_type}]"), |b| {
b.iter(|| {
// Serialize block
let (mut header, data) =
ValueBlock::to_bytes_compressed(&items, 0, comp_type).unwrap();
});
});
}
}
}

fn load_value_block_from_disk(c: &mut Criterion) {
let mut group = c.benchmark_group("Load block from disk");

for comp_type in [
//CompressionType::None,
CompressionType::Lz4,
//CompressionType::Miniz(3),
] {
for block_size in [1, 4, 8, 16, 32, 64, 128] {
let block_size = block_size * 1_024;

let mut size = 0;

let mut items = vec![];

for x in 0u64.. {
let value = InternalValue::from_components(
x.to_be_bytes(),
x.to_string().repeat(50).as_bytes(),
63,
lsm_tree::ValueType::Value,
);

size += value.size();

items.push(value);

if size >= block_size {
break;
}
}

// Serialize block
let (mut header, data) = ValueBlock::to_bytes_compressed(&items, 0, comp_type).unwrap();
header.checksum = Checksum::from_bytes(&data);

let mut file = tempfile::tempfile().unwrap();
header.encode_into(&mut file).unwrap();
Expand All @@ -156,5 +198,10 @@ fn load_value_block_from_disk(c: &mut Criterion) {
}
}

criterion_group!(benches, value_block_find, load_value_block_from_disk);
criterion_group!(
benches,
encode_block,
value_block_find,
load_value_block_from_disk,
);
criterion_main!(benches);

0 comments on commit acbac6b

Please sign in to comment.