Open
Description
Here's what I think is still left before next release
- Sample data for benchmarking #129
- Add fast counts #167
- Feature: Add select #135
- Perf regression: Iteration #176
- Non-validating deserialize #177
- quantify perf delta for stable
- quantify perf delta for nightly+simd
- manually verify docs
- create release notes
- bump direct dependency minor versions #193
- bump rust edition to 2021 #194
- Remove the
*_with
deprecated methods #200 - remove in place array-array xor operation #205
-
Create bench comparison to CRoaring #204(deferred to next release)
Release notes
-
Breaking changes
- Removed deprecated set ops such as
union_with
. Use the corresponding operators|=
. - MSRV increased to 1.56
deserialize_from
validates inputs. It some cases it can be 4x slower. For workloads that are heavy in deserialization from trusted sources migrate todeserialize_unchecked_from
- Removed deprecated set ops such as
-
Performance optimizations
from_sorted_iter
andappend
are exponentially faster. They should be preferred overcollect
andextend
whenever adding monotonically increasing integers to the set as it's about 2-2.5x faster.- Other performance optimizations.
Min Mean Max Iteration 6% 57% 125% And 0% 7% 22% Or 0% 10% 33% Sub 0% 9% 39% Xor 4% 90% 209%
-
New features
rank
Returns the number of integers that are <= value. rank(u64::MAX) == len()select
Returns then
th integer in the set orNone
ifn <= len()
union_len
intersection_len
... and so on. Compute the cardinality of a set operation without materializing it. Usually about twice as fast as materializing the bitmap.- implemented
DoubleEndedIterator
- implemented
ExactSizeIterator
(on 64 bit targets only) - EXPERIMENTAL SIMD feature (requires rust nightly)
Min Mean Max And 0% 34% 141% Or 2% 45% 145% Sub 0% 51% 168% Xor 0% 130% 437%
-
Other
- Added property testing suite for set operations
- Added many benchmarks and real world datasets
Perf numbers are for pairwise operations on collections of bitmaps from real datasets.
Pairwise as in: B1 ∩ B2, B2 ∩ B3, ... BN-1 ∩ BN
Metadata
Metadata
Assignees
Labels
No labels