v1.5.0
Overview
This release contains several performance improvement. relocate()
was completely rewritten. The build now works with all newer bazel versions up to latest (6.0.0)
What's Changed
Added
- Added B+tree multimap for internal (future) use. #93
- Added some fuzz tests. Not that these require manual compilation, see fuzzer/README.md. #114
- Added float-32 variants to multimap:
PhTreeMultiMapF
,PhTreeMultiMapBoxF
. #117
Changed
- Clean up array_map. #107,
- Fixed compatibility with bazel 6.0.0. #109,
- Added missing compiler flag for TZCNT/CTZ (count trailing zeros). This should be much faster on haswell or later CPUs. #103,
- Rewrote relocate(). This should be much cleaner now and slightly faster. #98, #99, #101, #104, #115
- Cleaned up HandleCollision() and key comparison functions. #97
- Improved performance by eliminating memory indirection for DIM > 3. This was enabled by referencing "Node" directly in "Entry" which was enabled by implanting an indirection in array_map. #96
- Improved performance of window queries by executing them partially as point queries. This works best for point datasets, and somewhat for box datasets with "include" queries. There is no benefit for "intersection" queries. #88
- Improved benchmarks for insert and query to use a more compact format. #91
- Improved performance of window queries by optimizing calculation of min/max masks.
Improved performance of queries and updates by changing bit-width of min/max masks and hc_pos_t. #95
Removed
- bazel version requirement file
.bazelversion
. #89
Fixed
- Fixed copy cstr/assignment of B+trees, see also #102. These were not used at all. #119
- Fixed numerous warnings when compiling with MSVC. #120
Full Changelog: v1.4.0...v1.5.0 or CHANGELOG