Prefer using extend when merging bitmaps than unions (less allocations)

This commit is contained in:
Clément Renault 2025-01-09 10:21:33 +01:00
parent f2141a894a
commit 00a03742ff
No known key found for this signature in database
GPG Key ID: F250A4C4E3AE5F5F

View File

@ -679,9 +679,7 @@ impl DelAddRoaringBitmap {
let del = self.del.get_or_insert_with(RoaringBitmap::new); let del = self.del.get_or_insert_with(RoaringBitmap::new);
let mut iter = bbbul.iter_and_clear(); let mut iter = bbbul.iter_and_clear();
while let Some(block) = iter.next_block() { while let Some(block) = iter.next_block() {
let iter = block.iter().copied(); del.extend(block);
let block = RoaringBitmap::from_sorted_iter(iter).unwrap();
*del |= block;
} }
} }
@ -689,9 +687,7 @@ impl DelAddRoaringBitmap {
let add = self.add.get_or_insert_with(RoaringBitmap::new); let add = self.add.get_or_insert_with(RoaringBitmap::new);
let mut iter = bbbul.iter_and_clear(); let mut iter = bbbul.iter_and_clear();
while let Some(block) = iter.next_block() { while let Some(block) = iter.next_block() {
let iter = block.iter().copied(); add.extend(block);
let block = RoaringBitmap::from_sorted_iter(iter).unwrap();
*add |= block;
} }
} }
} }