High-performance header-only container library for C++23 on x86-64

https://news.ycombinator.com/rss Hits: 6
Summary

Fast Containers High-performance header-only container library for C++23 on x86-64. What's Included B+Tree ( kressler::fast_containers::btree ) - Cache-friendly B+tree with SIMD search and hugepage support ( ) - Cache-friendly B+tree with SIMD search and hugepage support Dense Map ( kressler::fast_containers::dense_map ) - Fixed-size sorted array used internally by btree nodes ( ) - Fixed-size sorted array used internally by btree nodes Hugepage Allocators - Pooling allocators that reduce TLB misses and allocation overhead HugePageAllocator - Single-size allocator for uniform allocations MultiSizeHugePageAllocator - Multi-size pooling for variable-sized allocations (e.g., Abseil btree) PolicyBasedHugePageAllocator - Advanced control with shared pools - Pooling allocators that reduce TLB misses and allocation overhead Why This Library? The B+tree implementation provides significant performance improvements over industry standards for large trees. For some workloads with large trees, we've observed: vs Abseil B+tree: 2-5脳 faster across insert/find/erase operations 2-5脳 faster across insert/find/erase operations vs std::map: 2-5脳 faster across insert/find/erase operations See benchmark results for detailed performance analysis. Important qualifications: Performance advantages are most significant for large tree sizes where TLB misses and allocation costs dominate Benchmarks currently focus on 10M element trees; smaller tree sizes have not been comprehensively tested Results are specific to the tested configurations (8-byte keys, 32-byte and 256-byte values) Key advantages over Abseil's btree: Hugepage allocator integration: 3-5脳 speedup from reduced TLB misses and pooled allocations 3-5脳 speedup from reduced TLB misses and pooled allocations SIMD-accelerated search: 3-10% faster node searches using AVX2 instructions 3-10% faster node searches using AVX2 instructions Tunable node sizes: Optimize cache behavior for your specific key/value sizes Notes Work in progress Thi...

First seen: 2026-01-06 16:38

Last seen: 2026-01-06 21:38