diff --git a/bench/src/mem_bitvec.rs b/bench/src/mem_bitvec.rs index b64efae..16cdf67 100644 --- a/bench/src/mem_bitvec.rs +++ b/bench/src/mem_bitvec.rs @@ -24,7 +24,9 @@ fn show_memories(p: f64) { let mut b = BitVectorBuilder::new(); b.extend_bits(bits.iter().cloned()); let idx: BitVector = b.freeze::(); - idx.data.size_in_bytes() + idx.index.size_in_bytes() + let (len, data) = idx.data.to_bytes(); + let index = idx.index.to_bytes(); + data.as_ref().len() + index.as_ref().len() + std::mem::size_of_val(&len) }; print_memory("BitVector", bytes); @@ -32,7 +34,9 @@ fn show_memories(p: f64) { let mut b = BitVectorBuilder::new(); b.extend_bits(bits.iter().cloned()); let idx: BitVector = b.freeze::(); - idx.data.size_in_bytes() + idx.index.size_in_bytes() + let (len, data) = idx.data.to_bytes(); + let index = idx.index.to_bytes(); + data.as_ref().len() + index.as_ref().len() + std::mem::size_of_val(&len) }; print_memory("BitVector (with select hints)", bytes); } diff --git a/bench/src/mem_chrseq.rs b/bench/src/mem_chrseq.rs index d3d923d..0c52a68 100644 --- a/bench/src/mem_chrseq.rs +++ b/bench/src/mem_chrseq.rs @@ -33,7 +33,16 @@ fn show_memories(title: &str, text: &CompactVector) { let bytes = { let idx = WaveletMatrix::::new(text.clone()).unwrap(); - idx.size_in_bytes() + let layer_bytes: usize = idx + .layers + .iter() + .map(|bv| { + let (_, data) = bv.data.to_bytes(); + let index = bv.index.to_bytes(); + data.as_ref().len() + index.as_ref().len() + }) + .sum(); + layer_bytes + std::mem::size_of::() }; print_memory("WaveletMatrix", bytes, text.len()); } diff --git a/bench/src/mem_intvec.rs b/bench/src/mem_intvec.rs index ab96f20..ac71c4b 100644 --- a/bench/src/mem_intvec.rs +++ b/bench/src/mem_intvec.rs @@ -36,13 +36,24 @@ fn show_memories(title: &str, vals: &[u32]) { let bytes = { let idx = jerky::int_vectors::CompactVector::from_slice(vals).unwrap(); - idx.size_in_bytes() + let (meta, bytes) = idx.to_bytes(); + std::mem::size_of_val(&meta) + bytes.as_ref().len() }; print_memory("CompactVector", bytes, vals.len()); let bytes = { let idx = jerky::int_vectors::DacsByte::from_slice(vals).unwrap(); - idx.size_in_bytes() + let data_bytes: usize = idx.data.iter().map(|lvl| lvl.as_ref().len()).sum(); + let flags_bytes: usize = idx + .flags + .iter() + .map(|bv| { + let (_, data) = bv.data.to_bytes(); + let index = bv.index.to_bytes(); + data.as_ref().len() + index.as_ref().len() + }) + .sum(); + data_bytes + flags_bytes }; print_memory("DacsByte", bytes, vals.len()); }